我有一个下面带有for循环计数器的播放器。
当我将窗口设置为onload
时,for循环有效,但是youtube视频不显示。
当我将窗口设置为no wrap - bottom of <head>
时,youtube播放器可以工作,但是for循环不起作用。
http://jsfiddle.net/b8rha571/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/