1

我正在使用 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 );

任何帮助将不胜感激。谢谢!

4

1 回答 1

1

您可以在“点击”事件侦听器中打开一个新窗口,但不能在超时或视频时间更新事件中打开一个新窗口,这是 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 );

如果您打开的窗口指向不同的域,您将遇到问题。

于 2012-09-12T16:19:41.373 回答