BackboneJS如何加载Youtube Iframe视图



我有一个骨干应用程序,我有一个视图,我想在其中显示一个youtube播放器:

所以在我看来,在afterRender -我这样做了:

afterRender: function() {
              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('vid', {
                  height: '390',
                  width: '640',
                  videoId: '',
                  events: {
                    'onReady': onPlayerReady,
                    'onStateChange': onPlayerStateChange
                  }
                });
              }
              function onPlayerReady(event) {
                event.target.playVideo();
              }
              var done = false;
              function onPlayerStateChange(event) {
                if (event.data == YT.PlayerState.PLAYING && !done) {
                  setTimeout(stopVideo, 6000);
                  done = true;
                }
              }
              function stopVideo() {
                player.stopVideo();
              }
}

但它没有渲染任何东西,但我也没有得到错误,在我的控制台上,我可以看到Youtube API被加载…我哪里做错了?

请帮. .

查看相关问题:Youtube iframe api未触发onYouTubeIframeAPIReady

我认为问题是你的onYouTubeIframeAPIReady函数需要全局声明,而不是嵌套在另一个函数中。(在您的代码中,它仅在afterRender方法的范围内定义)

通过改变

function onYouTubeIframeAPIReady() {
 // ...
}

window.onYouTubeIframeAPIReady = function() {
 // ...
}

它现在工作!这里发现线索Youtube iframe api没有触发onYouTubeIframeAPIReady

相关内容

  • 没有找到相关文章

最新更新