微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在onYouTubeIframeAPIReady内修改DOM时,不触发YouTube iframe API事件

如何解决在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 举报,一经查实,本站将立刻删除。