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

'click'イベントリスナー内で新しいウィンドウを開くことはできますが、Popcornが使用するtimeoutまたはvideotimeupdateイベント内では開くことができません。しかし、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 に答える