首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关闭所有HTML5视频

关闭所有HTML5视频
EN

Stack Overflow用户
提问于 2011-12-20 22:59:36
回答 1查看 2.4K关注 0票数 0

我正在寻找一种方法,以关闭一个单一的视频网站上的所有HTML5视频。我正在开发一个应用程序,使用模式窗口来显示内容。其中一些内容是HTML5视频。当用户播放视频,然后决定关闭包含该视频的模式窗口时,我希望该视频停止。

我尝试过如下方法:

代码语言:javascript
复制
function stopVideo() {
    // Make sure to turn off and reset the video
    $( '.html5-video' ).each( function( index, element ) {
        $( this ).get( 0 ).currentTime = 0;
        $( this ).get( 0 ).pause();
    } );
}

这在Safari中运行良好;然而,在FireFox和Chrome中,它抛出一个错误,表明由于元素被隐藏,它不再可用。有谁知道如何可靠地停止所有视频?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2011-12-20 23:18:59

首先,您应该了解一些关于jQuery的知识。每次调用$() (带有一些参数)时,都会创建一个新的jQuery对象,这对性能很不利。如果使用相同的参数调用$(),则应该缓存结果,因此在本例中应该是:

代码语言:javascript
复制
var video_object = $(this).get(0);
video_object.currentTime = 0;
video_object.pause();

其次,当您使用jQuery执行each循环时,函数中的上下文(this)和第二个参数是html对象。因此,将它们包装在$()-method中,然后执行.get(0)没有任何意义。

所以这和你的方法是一样的:

代码语言:javascript
复制
function stopVideo() {
    // Make sure to turn off and reset the video
    $( '.html5-video' ).each( function( index, element ) {
      element.currentTime = 0;
      element.pause();
    } );
}

现在回到你的问题上。你能给出一个例子,或者更多的细节吗,因为上面的代码对我来说似乎工作正常(http://jsfiddle.net/klaascuvelier/fypAR/)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8577352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档