YouTube嵌入式播放器可以运行<no wrap =“”>,但无法加载

时间:2018-08-01 08:53:46

标签: javascript youtube-api

我有一个下面带有for循环计数器的播放器。

当我将窗口设置为onload时,for循环有效,但是youtube视频不显示。

http://jsfiddle.net/ajLg0wf9/

当我将窗口设置为no wrap - bottom of <head>时,youtube播放器可以工作,但是for循环不起作用。

http://jsfiddle.net/b8rha571/1/

解决此问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

您需要将YouTube api函数放在全局级别上,而不是在onLoad事件中,例如:

<script>
 var player;
 function onYouTubeIframeAPIReady() {
    player = new YT.Player('player', {
        height: '390',
        width: '640',
        videoId: 'wQxmK1CZwik',
        events: {
            'onReady': onPlayerReady,
            'onStateChange': onPlayerStateChange
        }
    });
 }
 function onPlayerReady(event) {
    loopStart();
    player.playVideo();
 }
 function loopStart() {
    player.seekTo(7);   // Start at 7 seconds
 }
 function onPlayerStateChange(event) {
    if (event.data == YT.PlayerState.PLAYING) {
        setTimeout(loopStart, 30000); // After 5 seconds, restart the loop
    }
 }

 document.addEventListener("DOMContentLoaded", function(event) {
  var button = document.getElementById("clickme"),
  count = 0;
  button.onclick = function() {
     count += 1;
     button.innerHTML = "Click me: " + count;
  };
 });
</script>

我不确定如何在jsfiddle中正确执行此操作,但这可行:http://jsfiddle.net/ajLg0wf9/10/