我的网页上有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>
我需要点击链接Stop all videos
停止所有播放iframe视频。我怎么能这样做?
答案 0 :(得分:47)
试试这种方式,
<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>
答案 1 :(得分:13)
这应该会停止在页面上所有iframe中播放的所有视频:
$("iframe").each(function() {
var src= $(this).attr('src');
$(this).attr('src',src);
});
答案 2 :(得分:8)
停止意味着暂停并将视频设置为时间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();
});
}
答案 3 :(得分:3)
重新加载所有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();
将停止所有youtubes iframe视频。
您可以使用这些消息关键字来启动/停止/暂停youtube embdded videos:
stopVideo
playVideo
pauseVideo
点击下面的链接观看现场演示:
https://codepen.io/mcakir/pen/JpQpwm
答案 4 :(得分: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>
答案 5 :(得分:1)
$("#close").click(function(){
$("#videoContainer")[0].pause();
});
答案 6 :(得分:0)
再次重新加载所有iframe以停止视频
<a href="#" class="close" onclick="stop();">Stop all videos</a>
function stop(){
var iframe = document.getElementById('youriframe');
iframe.src = iframe.src;
}
答案 7 :(得分:0)
您可以使用迭代修改此代码
/**
* 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 也发布在这里(由我):how to destroy bootstrap modal window completely?
答案 8 :(得分:0)
这是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;
});
});
答案 9 :(得分: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;
});
})