无法阻止深度嵌套的YouTube视频

时间:2012-12-28 00:07:25

标签: jquery iframe youtube

当模式关闭时,我似乎无法让YouTube视频停止播放。视频消失,但音频继续播放。

我在许多其他问题中尝试过这些解决方案,但似乎没有任何效果。我想这可能是因为我的视频深度嵌套而且我无法定位它。和/或因为iframe具有相同名称的元素ID。 (不要让我开始。)

以下是对DOM的简要介绍:

html
  head
  body
    <div id="popoverview">
      <div id="popoveritem">
        <iframe id="popoverframe">   <!-- this is our modal -->
          #document
            html
              head
              body
                <div id="popovercontainer">
                  <div id="popover_upc_video">
                    <div id="current_video">
                      <div id="player">
                        <iframe id="popoverframe">
                          #document  <!-- this is from youtube -->
                            html
                              head
                              body
                                <div id="player">
                                  <div id="playercontainer">
                                    <embed id="video-player-flash">  <!-- the video -->

这里有一些来自javascript插入youtube视频 - 包括?enablejsapi = 1 - 进入模态:

document.getElementById('player').innerHTML = '<iframe id="youtubevideo" width="620" height="376" src="http://www.youtube.com/embed/'+youtube_id+'?enablejsapi=1?hl=en&rel=0&fs=1&modestbranding=1" frameborder="0" allowfullscreen>Error?</iframe>';

这里有一些关闭模态的函数。问题是音频一直在播放。错误消息是Uncaught TypeError:Object [object Object]没有方法'stopVideo'。

var myPlayer = $('#player > #video-player-flash');
myPlayer.stopVideo();

我尝试了很多定位方法,但没有任何效果。

感谢您的帮助。 查理马吉

1 个答案:

答案 0 :(得分:-1)

你有一个jQuery对象设置为myPlayer而不是 DOM节点。

var myPlayer = $('#player > #video-player-flash')[0];
myPlayer.stopVideo();

请参阅此帖子:How can I stop a video with Javascript in Youtube?