Javascript YouTube onPlayerReady从未被触发

Javascript YouTube onPlayerReady从未被触发,javascript,youtube,Javascript,Youtube,知道这个脚本为什么不起作用吗?我只想跟踪onStateChanged事件,但这也从未调用过 当我用下面的代码打开html文档时,我没有错误,youtube脚本加载得很好,播放器对象不是未定义的,看起来也很好 $(document).ready(function(){ loadScript(); }); function loadScript() { var tag = document.createElement('script'); tag.s

知道这个脚本为什么不起作用吗?我只想跟踪
onStateChanged
事件,但这也从未调用过

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

$(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>
我在这里找到了答案:

我的解决方案不起作用的原因是,我的
iframe
缺少一个属性:
enablejsapi=“1”
,而且我在YouTube视频url中缺少:
?enablejsapi=1


您可以在这里找到有效的解决方案:

您是否尝试过像
window.onyoutubeiframeapiredy(){(…)}
那样声明它?