Javascript Youtube视频事件[在本地或其他情况下]未触发?

Javascript Youtube视频事件[在本地或其他情况下]未触发?,javascript,youtube,Javascript,Youtube,我有以下代码,几乎直接取自API,但事件不会触发。有什么想法吗?谢谢 var tag = document.createElement('script'); tag.src = "http://www.youtube.com/player_api"; var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScri

我有以下代码,几乎直接取自API,但事件不会触发。有什么想法吗?谢谢

var tag = document.createElement('script');
  tag.src = "http://www.youtube.com/player_api";
  var firstScriptTag = document.getElementsByTagName('script')[0];
  firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

  var player;
  function onYouTubePlayerAPIReady() {
    player = new YT.Player('player', {
      height: '250',
      width: '300',
      videoId: 'u1zgFlCw8Aw',
      events: {
        'onReady': onPlayerReady,
        'onStateChange': onPlayerStateChange
      }
    });
  }

  function onPlayerReady(event) {
    alert("Ready");
    event.target.playVideo();
  }

  function onPlayerStateChange(event) {

      alert("State Changed");

  }

回答:原来是因为我在本地测试,啊!但其他可能的原因请参见下文。

尝试使用下面的代码,对我来说非常有效


//异步加载播放器api。
var tag=document.createElement('script');
tag.src=”http://www.youtube.com/player_api";
var firstScriptTag=document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(标记,firstScriptTag);
var播放器;
函数onYouTubePlayerAPIReady(){
player=新的YT.player('player'{
高度:“390”,
宽度:“640”,
videoId:'JW5meKfy3fY',
PlayerBars:{'autoplay':1,'rel':0,'showinfo':0,'egm':0,'showsearch':0,},
活动:{
“onReady”:onPlayerReady,
“onStateChange”:onPlayerStateChange
}
});
}
函数onPlayerReady(事件){
event.target.playVideo();
}
函数onPlayerStateChange(事件、元素){
//视频结束时
如果(event.data==YT.PlayerState.end){
//除掉那个球员
element.style.display=“无”;
}
}

我也在当地发展。。。。可能的原因有:1。在某些浏览器中,由于安全限制2的副作用,测试“本地”(加载文件而不通过)将不起作用。混合使用嵌入API(在这里声明一个iframe)和iframe API(在这里声明一个DIV并加载一些JS)。这些事件似乎只适用于后者。3.DIV上的ID与新YT.Player(…)呼叫4上的ID不匹配。未能在全局范围内定义onYouTubePlayerAPIReady,我很高兴OP只有一个问题。我必须通过这四个环节才能让它发挥作用。