【发布时间】:2025-12-05 06:30:01
【问题描述】:
我有两个颜色框弹出框,每个框都显示一个 YouTube 视频。当他们完成播放时,我试图让他们自动关闭彩盒窗口。下面的代码在 Firefox 中完美运行,但在 IE 中我无法让 addEventListener 工作。我试过attachEvent 没有成功。任何人都可以就如何解决这个问题提供任何建议吗?这看起来很简单,但我已经筋疲力尽地试图找到解决方案。
更新 1:
嗯,这是我当前的代码。它在 Firefox 中完美运行,但 IE 仅输出良好。 IE8 调试器也不报任何错误...
function onYouTubePlayerReady(playerId) {
if (playerId && playerId != 'undefined') {
if(playerId && playerId == 'ytvideo1'){
var ytswf = document.getElementById('ytplayer1');
alert('good');
} else if(playerId && playerId == 'ytvideo2'){
var ytswf = document.getElementById('ytplayer2');
} else {
}
setInterval('', 1000);
ytswf.addEventListener('onStateChange', 'onytplayerStateChange');
alert('great');
}
}
function onytplayerStateChange(newState) {
alert('amazing');
if(newState == 0){
$.fn.colorbox.close();
alert('perfect');
}
}
更新 3:解决方案
只需将 onComplete 放入我的颜色框中,然后将 swfobject 放入其中即可在 IE 中完美运行。
【问题讨论】:
-
addEvent 应该可以工作。你能展示一下你是如何使用 addEvent 的代码吗?
-
我只是做了 ytplayer.attachEvent("onStateChange", onytplayerStateChange);就在addEventListener下面,我没有设置条件,觉得没关系。
-
我在 ytvideo2 中使用 attachEvent 更新了我的代码,它适用于 FF,但不适用于 IE。我必须让它在 IE 中工作。我在 FF、IE8 和 IE 兼容模式(IE6?)下进行测试,在这两个 IE 上都不起作用。一个解决方法就可以了,有什么建议吗?
-
让我确定我明白你在说什么。运行上面显示的代码,您在 IE 中看不到“很棒”的警报,也没有收到任何错误报告?当您说 IE 时,您的意思是没有任何版本的 IE?你能提供一个测试页面的链接,以便我看一下吗?在我看来,如果我在答案中提供的示例页面在 IE 中有效,那么您就知道 Google 代码没问题。您现在应该尝试弄清楚您的代码与 Google 的代码有何不同。
标签: javascript jquery youtube-api dom-events swfobject