Javascript 第二个动态加载的YouTube播放器对象不播放
简而言之,问题在于: 当我加载页面时,我用YouTube的API创建了一个YouTube播放器对象,效果非常好 当用户单击播放按钮时,我在旋转木马中动态创建了另一个YouTube播放器对象。该对象已创建,甚至出现在旋转木马中,但我无法访问它的函数,如playVideo() 我已经创建了一个播放器对象数组和一个iframe id数组来传递到新的YT.player对象中,所有这些都起作用了,但是第二个视频没有触发任何事件。当我检查并逐步浏览Javascript时,我可以看到player对象的属性,我注意到第一个对象具有所有相关的属性和函数,如addCueRange、Ismute、playVideo等。第二个对象缺少所有这些属性和函数。它的属性数量非常有限 我注意到的一件事是名为“B”的财产。第一个是真的,第二个是假的。这个属性代表什么 以下是代码的一部分:Javascript 第二个动态加载的YouTube播放器对象不播放,javascript,youtube,youtube-api,Javascript,Youtube,Youtube Api,简而言之,问题在于: 当我加载页面时,我用YouTube的API创建了一个YouTube播放器对象,效果非常好 当用户单击播放按钮时,我在旋转木马中动态创建了另一个YouTube播放器对象。该对象已创建,甚至出现在旋转木马中,但我无法访问它的函数,如playVideo() 我已经创建了一个播放器对象数组和一个iframe id数组来传递到新的YT.player对象中,所有这些都起作用了,但是第二个视频没有触发任何事件。当我检查并逐步浏览Javascript时,我可以看到player对象的属性,我
var players = {};
var youTubeIframes = [];
var index = 0;
var videoID = "";
...
function addYouTubeEvents( youTubeIframe ) {
youTubeIframes[index] = youTubeIframe;
youTubeIframes[index].pauseFlag = false;
players[youTubeIframes[index].id] = new YT.Player( youTubeIframes[index], {
videoId: videoID,
playerVars: {
html5: 1
},
events: {
'onReady': function(e){
onPlayerReady(e);
},
'onStateChange': function(evt){
onStateChangeHandler( evt, youTubeIframes[index] );
}
}
} );
index++;
}
function onPlayerReady(e){
console.log("Player is ready");
if(e.target.a.id == 'youtube-video'){
e.target.playVideo();
}
}
乍一看。。。id==“youtube视频”。。。如果您使用的是重复id,那么这可能就是dealbreakernope,每个iframe都有一个唯一的idI,我不知道youtube api,因此无法帮助您,但您可能希望显示创建传递到
AddYouTube事件()
的对象的代码和一些html标记。另外,如何使用索引
?在第一次查看时。。。id==“youtube视频”。。。如果您使用的是重复id,那么这可能就是dealbreakernope,每个iframe都有一个唯一的idI,我不知道youtube api,因此无法帮助您,但您可能希望显示创建传递到AddYouTube事件()
的对象的代码和一些html标记。另外,如何使用索引
?