JavaScript阻止模式窗口closuresHTML5video播放

我有一个模式窗口html5video元素。 当我closures窗口时,video继续播放。 我是JS的总新手。 是否有一种简单的方法将video播放停止function绑定到窗口closuresbutton? 以下是我的html页面:

<!DOCTYPE html > <html lang="en"> <head> <meta charset="utf-8" /> <title>Modal Test</title> <script type="text/javascript" src="jquery.js"> </script> <script type="text/javascript"> $(document).ready(function(){ $("#showSimpleModal").click(function() { $("div#simpleModal").addClass("show"); return false; }); $("#closeSimple").click(function() { $("div#simpleModal").removeClass("show"); return false; }); }); </script> <style type="text/css"> div#simpleModal { position:absolute; top: 40px; width: 320px; left: 170px; border: solid 1px #bbb; padding: 20px; background: #fff; -webkit-box-shadow: 0px 3px 6px rgba(0,0,0,0.25); opacity: 0.0; -webkit-transition: opacity 0.0s ease-out; z-index: 0; } div#simpleModal.show { opacity: 1.0; z-index: 100; -webkit-transition-duration: 0.25s; } </style> </head> <body> <a href="" id="showSimpleModal">Show Modal</a> <div id="simpleModal" class="modal"> <video width="320" height="240" src="Davis_5109iPadFig3.m4v" controls="controls"> </video> <a href="" id="closeSimple">Close</a> </div> </body> </html> 

任何input不胜感激。

谢谢。

我不确定ZohoGorganzola的解决scheme是否正确。 然而,你可能想尝试直接获取元素,而不是试图调用jQuery集合的方法,所以不是

 $("#videoContainer").pause(); 

尝试

 $("#videoContainer")[0].pause(); 

我在网上search了这个问题的答案。 除了这段代码外,没有任何东西可以工 保证。 它工作完美。

 $('body').on('hidden.bs.modal', '.modal', function () { $('video').trigger('pause'); }); 

我正在使用以下技巧来停止HTML5video。 暂停()video模式closures,并设置currentTime = 0;

 <script> var video = document.getElementById("myVideoPlayer"); function stopVideo(){ video.pause(); video.currentTime = 0; } </script> 

现在,您可以使用stopVideo()方法来停止HTML5video。 喜欢,

 $("#stop").on('click', function(){ stopVideo(); }); 

closuresvideo时,只需暂停即可。

 $("#closeSimple").click(function() { $("div#simpleModal").removeClass("show"); $("#videoContainer").pause(); return false; }); <video id="videoContainer" width="320" height="240" src="Davis_5109iPadFig3.m4v" controls="controls"> </video> 

另外,作为参考,这里是用于脚本video控制的Opera 文档 。

正确的答案是: $("#videoContainer")[0].pause();

这些都没有为我使用4.1 video.js CDN。 当( .closemodal )被点击的时候,这段代码杀死了模式中的video。 我有3个video。 其他人可以重构。

 var myPlayer = videojs("my_video_1"); var myPlayer2 = videojs("my_video_2"); var myPlayer3 = videojs("my_video_3"); $(".closemodal").click(function(){ myPlayer.pause(); myPlayer2.pause(); myPlayer3.pause(); }); }); 

根据他们的Api文档。

尝试这个:

 $(document).ready(function(){ $("#showSimpleModal").click(function() { $("div#simpleModal").addClass("show"); $("#videoContainer")[0].play(); return false; }); $("#closeSimple").click(function() { $("div#simpleModal").removeClass("show"); $("#videoContainer")[0].pause(); return false; }); }); 

对于使用<object>标签embedded的video来解决这个问题的人来说,你想要的function是Quicktime的element.Stop(); 例如,要停止任何和所有播放的电影,请使用:

 var videos = $("object"); for (var i=0; i < videos.length; i++) { if (videos[i].Stop) { videos[i].Stop(); } } 

注意Stop()上的非标准大写字母“S”;

试试:

 function stop(){ var video = document.getElementById("video"); video.load(); }