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
。どうやってやるの?
この方法を試して、
<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>
これにより、ページ上のすべてのiframeで再生されるすべてのビデオが停止します。
$("iframe").each(function() {
var src= $(this).attr('src');
$(this).attr('src',src);
});
停止とは、ビデオを一時停止して時間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();
});
}
停止するためだけにすべての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();
これにより、すべてのYouTube iframeビデオが停止します。
次のメッセージキーワードを使用して、YouTube埋め込み動画を開始/停止/一時停止できます。
stopVideo
playVideo
pauseVideo
ライブデモについては、以下のリンクをご覧ください。
https://codepen.io/mcakir/pen/JpQpwm
上記のコードを少し編集しましたが、次のコードが役に立ちました。
<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>
$("#close").click(function(){
$("#videoContainer")[0].pause();
});
これが2019年の純粋なJavascriptソリューションです
const videos = document.querySelectorAll('iframe');
const close = document.querySelector('.close');
close.addEventListener('click', () => {
videos.forEach((i) => {
let source = i.src;
i.src = '';
i.src = source;
});
});
このコードは繰り返しで変更できます
/**
* 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 こちらにも投稿(私による): 破壊方法bootstrap=モーダルウィンドウを完全に?
すべてのiframeを再度リロードして、ビデオを停止します
<a href="#" class="close" onclick="stop();">Stop all videos</a>
function stop(){
var iframe = document.getElementById('youriframe');
iframe.src = iframe.src;
}