29

Webページにiframeビデオのリストがあります。

<iframe width="520" height="360" src="http://www.youtube.com/embed/2muxrT5_a6E" frameborder="0" allowfullscreen></iframe>
<iframe width="520" height="360" src="http://www.youtube.com/embed/2muxrT5_a6E" frameborder="0" allowfullscreen></iframe>
<iframe width="520" height="360" src="http://www.youtube.com/embed/2muxrT5_a6E" frameborder="0" allowfullscreen></iframe>
<a href="#" class="close">Stop all videos</a>

リンクをクリックすると、iframeビデオの再生をすべて停止する必要がありますStop all videos。どうやってやるの?

4

10 に答える 10

64

この方法を試してください、

<script language="javascript" type="text/javascript" src="jquery-1.8.2.js"></script>
<script language="javascript" type="text/javascript">
$(function(){
    $('.close').click(function(){      
        $('iframe').attr('src', $('iframe').attr('src'));
    });
});
</script>
于 2012-11-28T06:02:00.790 に答える
18

停止するためだけにすべてのiframeをリロードするのは、ひどい考えです。HTML5に付属しているものを利用する必要があります。

YouTubeのiframe_APIライブラリを使用せずに; 簡単に使用できます:

var stopAllYouTubeVideos = () => { 
  var iframes = document.querySelectorAll('iframe');
  Array.prototype.forEach.call(iframes, iframe => { 
    iframe.contentWindow.postMessage(JSON.stringify({ event: 'command', 
  func: 'stopVideo' }), '*');
 });
}
stopAllYouTubeVideos();

これにより、すべてのYouTubeiframeビデオが停止します。

次のメッセージキーワードを使用して、YouTubeの埋め込み動画を開始/停止/一時停止できます。

stopVideo
playVideo
pauseVideo

ライブデモについては、以下のリンクを確認してください。

https://codepen.io/mcakir/pen/JpQpwm

PS- YouTube URLには?enablejsapi=1、このソリューションを機能させるためのクエリパラメータが必要です。

于 2018-03-08T12:13:54.967 に答える
17

これにより、ページ上のすべてのiframeで再生されるすべての動画が停止します。

$("iframe").each(function() { 
        var src= $(this).attr('src');
        $(this).attr('src',src);  
});
于 2014-01-08T23:42:20.267 に答える
10

停止とは、ビデオを一時停止して時間0に設定することを意味します。

        $('iframe').contents().find('video').each(function () 
        {
            this.currentTime = 0;
            this.pause();
        });

このjqueryコードはまさにそれを行います。

src属性を置き換えて、ビデオを再度リロードする必要はありません。


プロジェクトで使用している小さな関数:

    function pauseAllVideos() 
    { 
        $('iframe').contents().find('video').each(function () 
        {
            this.pause();
        });
        $('video').each(function () 
        {
            this.pause();
        });
    }
于 2015-07-01T08:10:33.960 に答える
5

これが2019年のバニラJavascriptソリューションです

const videos = document.querySelectorAll('iframe')
const close = document.querySelector('.close')

close.addEventListener('click', () => {
   videos.forEach(i => {
      const source = i.src
      i.src = ''
      i.src = source
   })
})
于 2019-09-09T15:12:28.427 に答える
2

上記のコードを少し編集しましたが、次のコードでうまくいきました。

<script>
function stop(){<br/>
       var iframe = document.getElementById('myvid');<br/>
     var iframe1 = document.getElementById('myvid1');<br/>
      var iframe2 = document.getElementById('myvid2');<br/>
    iframe.src = iframe.src;<br/>
    iframe1.src=iframe1.src;<br/>
    iframe2.src=iframe2.src;<br/>
}<br/>

</script>
于 2014-03-21T08:09:43.897 に答える
1
$("#close").click(function(){
  $("#videoContainer")[0].pause();
});
于 2015-04-14T10:57:21.783 に答える
0

jQueryでは、以下のコードを使用して、iframeまたはhtmlビデオを停止できます。
これは、同じページの単一または複数のビデオで機能します。

var  videos = document.querySelectorAll('iframe');
 
$(".video-modal .fa-times").on("click", function () {
        videos.forEach(i => {
          let source = i.src;
          i.src = '';
          i.src = source;
       });
        $(".video-modal").css("display", "none");
        return false;
    });

})
于 2021-04-13T06:39:36.593 に答える
-1

すべてのiframeを再度リロードして、動画を停止します

<a href="#" class="close" onclick="stop();">Stop all videos</a>

function stop(){
    var iframe = document.getElementById('youriframe');
    iframe.src = iframe.src;
}
于 2012-11-28T05:43:02.340 に答える
-1

このコードは反復で変更できます

/**
 * Stop an iframe or HTML5 <video> from playing
 * @param  {Element} element The element that contains the video
 */
var stopVideo = function ( element ) {
    var iframe = element.querySelector( 'iframe');
    var video = element.querySelector( 'video' );
    if ( iframe ) {
        var iframeSrc = iframe.src;
        iframe.src = iframeSrc;
    }
    if ( video ) {
        video.pause();
    }
};

所有者:https ://gist.github.com/cferdinandi/9044694 もここに投稿されています(私による):ブートストラップモーダルウィンドウを完全に破壊する方法は?

于 2017-06-23T09:30:38.843 に答える