javascript - 视频弹出模式关闭时在后台播放

标签 javascript jquery magnific-popup

我正在使用放大弹出窗口,它在 Chrome 中工作正常,但在 Mozilla 和 IE 上,当我关闭弹出模式时,音频仍会在后台播放。

我在网上搜索了其他有此问题的人,但找不到有效的解决方案。该视频只是一个 html 视频,没有 YouTube 或任何其他内容。这是我正在使用的代码。

function displayVideoAsPopup(selector,attr) {
    $(selector).each(function(i,e) {
        var videoSrc=$(e).attr(attr);
        if($(e)[0].localName=="a"){
            $(e).attr("href","javascript:void(0)"); 
        }
        $(e).magnificPopup({
            items: {
                type: 'inline',
                src: '<div class="container"><video controls preload="auto" autoplay width="100%" height="100%" src="' + videoSrc + '"></video></div>',
            },
            callbacks: {
                open: function() {
                    $(this.content).find('video')[0].play();

                },
                close: function() {
                    $(this.content).find('video')[0].load();
                }
            }
        });
    });

最佳答案

您似乎在视频上调用了 load(),而不是在弹出窗口关闭时调用了暂停(),这正常吗?

function displayVideoAsPopup(selector, attr) {
    $(selector).each(function (i, e) {
        var videoSrc = $(e).attr(attr);
        if ($(e)[0].localName == "a") {
            $(e).attr("href", "javascript:void(0)");
        }
        $(e).magnificPopup({
            items: {
                type: 'inline',
                src: '<div class="container"><video controls preload="auto" autoplay width="100%" height="100%" src="' + videoSrc + '"></video></div>',
            },
            callbacks: {
                open: function () {
                    $(this.content).find('video')[0].play();

                },
                close: function () {
                    // Call pause() here instead of load()
                    $(this.content).find('video')[0].pause();
                }
            }
        });
    });

暂停后,您也应该将视频元素的 src 设置为“”或 null。 HTML5 Video Stop onClose

关于javascript - 视频弹出模式关闭时在后台播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42666968/

相关文章:

javascript - Windows 上的 gulp-rsync 不在远程 Linux 服务器上创建目录

javascript - 为什么在 IE 中迭代 window 对象的属性会导致错误?

javascript - 如果选择了选项,则运行 javascript 函数

javascript - 如何使用 javascript 或 jQuery 根据相同的特定 css 属性对元素进行分组?

jQuery — 删除展开的文本但保留元素?

javascript - Magnific Popup - 向 iframe 添加额外的类

Javascript html 损坏的链接 mailto/report

javascript - 如何在 Bootstrap 模式中使用 Laravel 命令?

javascript - 将 magnificPopup 添加到动态创建的元素