2016-02-29 128 views
1

任何想法为什么这个脚本不起作用?我想要的只是跟踪onStateChanged事件,但这从来都不是被称为。YouTube onPlayerReady永远不会被触发

当我用下面的代码打开html文档时,我没有错误,youtube脚本加载得很好,播放器对象不是undefined,看起来也不错。

$(document).ready(function(){ 
    loadScript(); 
}); 

    function loadScript() { 
     var tag = document.createElement('script'); 
     tag.src = "https://www.youtube.com/iframe_api"; 
     var firstScriptTag = document.getElementsByTagName('script')[0]; 
     firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 
    } 

    var player; 
    function onYouTubeIframeAPIReady() { 
     player = new YT.Player('player', { 
     events: { 
      'onReady': onPlayerReady, 
      'onStateChange': onPlayerStateChange 
      } 
     }); 
     alert(player); 
    } 

    var done = false; 
    function onPlayerStateChange(event) { 
      alert('state changed'); 
     if (event.data == YT.PlayerState.PLAYING && !done) { 
      setTimeout(stopVideo, 3000); 
      done = true; 
     } 
    } 
    function stopVideo() { 
     player.stopVideo(); 
    } 
    function onPlayerReady(event) { 
     event.target.playVideo(); 
    } 

iframe

<iframe id="player width="400" height="300" src="https://www.youtube.com/embed/j0pJekWgeFE" frameborder="0" allowfullscreen></iframe> 

见琴:https://jsfiddle.net/rg2uy1f8/

+0

你试过宣布它像'window.onYouTubeIframeAPIReady(){(...)}'? – BoltKey

回答

相关问题