我只是在IE 8检查我的youtube播放器,并注意到'onReady', 'onStateChange'事件没有触发。initPlayer方法正在被调用,视频正在播放,但是事件没有触发。
可以在Safari, Firefox Mac, Firefox Win上正常工作。
我错过了什么吗?
相关代码如下:
MyPlayer.prototype = {
/* [...] */
initPlayer: function () {
var that = this;
alert("initPlayer: (IE 8 gets this far)");
this.player = new YT.Player(this.cfg.divTagId, {
height: this.cfg.height,
width: this.cfg.width,
videoId: this.cfg.videoId,
origin: location.host,
playerVars: {
controls: this.cfg.controls,
wmode: 'opaque',
fs: 0
},
events: {
'onReady': function (event) {alert("onReady")},
'onStateChange': function (event) {alert("onChange")}
}
});
},
/* [...] */
}
一个可能的因素:如果你在本地运行API,它将无法在IE中正常工作-尝试从http: path运行你的代码。
源:http://groups.google.com/forum/?fromgroups= !主题/youtube-api-gdata LV49fIR5Uo0
这是YouTube api代码中的一个老bug。