在播放HTML5视频时打开弹出窗口

时间:2012-06-20 16:33:55

标签: javascript html5 video popup popcornjs

我正在使用popcorn.js提供与HTML5视频的一些互动。当视频正在播放时,我正试图让另一个窗口(带有另一个视频)在某个时间点打开然后关闭x秒。基本上,我正在尝试重新创建此处显示的功能:http://thewildernessdowntown.com

我遇到的问题是我的弹出窗口被Firefox的弹出窗口阻止程序阻止了。我怎么能绕过这个?我再次回顾http://thewildernessdowntown.com,因为他们的窗户打开很好,但我无法弄清楚他们在做什么。

这是我的一些非常基本的代码:

document.addEventListener('DOMContentLoaded', function() {

    var $popcorn = Popcorn('#video');

    $popcorn.code({
        start: 6,
        end: 12,
        onStart: function() {
            window.open('window.html','window','width=400,height=200');
        },
        onEnd: function() {
            window.close();
        }
    });

}, false );

非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

您可以在“click”事件侦听器中打开一个新窗口,但不能在超时或视频timeupdate事件中打开,这是Popcorn使用的。但是如果你仔细观察The Wilderness Downtown,当你点击开始按钮然后再重新使用这些窗口时,它会提前打开几个窗口来解决这个问题。所以像这样......

document.getElementById('start-button').addEventListener('click', function() {

    var $popcorn = Popcorn('#video'),
        popup = window.open('about:blank','mywindow','width=10,height=10');

    $popcorn.code({
        start: 6,
        end: 12,
        onStart: function() {
            window.open('window.html','mywindow');
            popup.moveTo(400, 400);
            popup.resizeTo(400,200);
            popup.focus();
        },
        onEnd: function() {
            //window.close();
            /* in case you want to re-use this window again later... */
            window.open('about:blank','mywindow');
            popup.moveTo(0, 0);
            popup.resizeTo(10, 10);
        }
    });

    //optionally...
    $popcorn.play();

}, false );

如果您打开的窗口指向其他域,则会遇到问题。