在页面标签页中,Youtube API如何工作?由于某种原因,除非我打开该网页,否则它不会检测到YT.playerstate.ENDED。有没有一种方法可以解决此问题,以便在我位于与站点所在位置不同的单独选项卡上时运行。下面是我运行JS的方式。
var videoId = document.getElementsByClassName("songVideo")[0].id;
player = new YT.Player('players', {
height: '390',
width: '640',
events: {
'onReady': function(e){
if(videoId == ""){
}else{
player.loadVideoById(videoId);
e.target.playVideo();
}
},
'onStateChange': onPlayerStateChange
}
});
function onPlayerStateChange(event) {
if(event.data == YT.PlayerState.ENDED){
$("#players").empty();
startup();
}
}
因此,当结束时,应该运行启动来重置事件侦听器,以便在播放器中打开新歌曲。就像我之前说过的那样,当我打开窗口但不在单独的选项卡上时,此方法无效。