如何解决在onYouTubeIframeAPIReady内修改DOM时,不触发YouTube iframe API事件
由于某种原因,在onYouTubeIframeAPIReady中将DIV添加到播放器父级(或其任何祖先)会导致播放器事件未触发。
使用YouTube的基本示例和onYouTubeIframeAPIReady调用的addDivTo()函数,这是一个小玩意儿: https://jsfiddle.net/hdavu6o9/
HTML:
<body id='body'>
<div id='gparent'>
<div id='parent'>
<div id="player"></div>
<div id="sibling"></div>
</div>
</div>
</body>
JS:
function onYouTubeIframeAPIReady() {
console.log("onYouTubeIframeAPIReady called");
player = new YT.Player('player',{
height: '390',width: '640',videoId: 'M7lc1UVf-VE',events: {
'onReady': onPlayerReady,'onStateChange': onPlayerStateChange
}
});
addDivTo('parent'); // player events not triggered
//addDivTo('gparent'); // player events not triggered
//addDivTo('body'); //player events not triggered
//addDivTo('sibling'); //works fine
}
function addDivTo(id){
var ele = document.getElementById(id);
ele.innerHTML += "<div class='thediv'>DIV added to " + id + "</div>";
console.log("DIV added to " + id);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。