参见英文答案 >
YouTube iframe player API – OnStateChange not firing1个
美国东部时间下午6点左右,下面的代码可以正常工作,但现在由于某种原因onStateChange没有解雇.我尝试过多个浏览器并让朋友检查过它.看到明显错误的东西?
美国东部时间下午6点左右,下面的代码可以正常工作,但现在由于某种原因onStateChange没有解雇.我尝试过多个浏览器并让朋友检查过它.看到明显错误的东西?
<div id="video"> <div id="player_wrap"> <div id="player"></div> </div> </div> <script> var tag = document.createElement("script"); tag.src = "http://www.youtube.com/iframe_api"; var firstScriptTag = document.getElementsByTagName("script")[0]; firstScriptTag.parentNode.insertBefore(tag,firstScriptTag); function onYouTubeIframeAPIReady() { var player; player = new YT.Player("player",{ width: 640,height: 400,videoId: "MbfsFR0s-_A",events: { 'onReady': onPlayerReady,'onStateChange': onPlayerStateChange } }); } function onPlayerReady() { alert ("player ready"); } function onPlayerStateChange(event) { alert ("something happened"); }
解决方法
这是iFrame Player API的临时问题.你可以在这里阅读:
https://code.google.com/p/gdata-issues/issues/detail?id=4706
杰夫波斯尼克在这里发布了一个临时解决方案:http://jsfiddle.net/jeffposnick/yhWsG/3/
基本上,您只需要在onReady事件中添加事件监听器(只是临时修复):
function onReady() { player.addEventListener('onStateChange',function(e) { console.log('State is:',e.data); }); }