2

window.open() でポップアップを開くボタンがあるとします。

<button id = "my-button">Open window</button>​

そして、このウィンドウが閉じたときにキャプチャしたいと思います。次のコードを使用します。

$('#my-button').on('click', function() {
    popup = window.open('http://www.google.com', 'my_popup', "width=800,height=600,scrollbars=no,resizable=yes,status=yes,toolbar=no,location=no,menubar=no");
    $(popup.document).ready(function() {
        console.log('ready!');
        $(popup).on('unload', function() {
            console.log('unloaded!');
        } );
    })    
});​

ここで、開いたウィンドウが「about:blank」を短時間ロードしてから、要求された URL をロードすることに気付きました。その際、onunload イベントが発生します。他の投稿では、これは正常な動作であると言われていますが、2 番目の onunload イベントが発生していないようです (少なくともクロムを使用)。

誰かが提案する回避策を持っていますか?

フィドルを参照してください: http://jsfiddle.net/periklis/NJz6w/

いつものように、事前に感謝します

4

1 に答える 1

3

結局、私は解決策を見つけました:

$('#my-button').on('click', function() {
    popup = window.open('http://www.google.com', 'my_popup', "width=800,height=600,scrollbars=no,resizable=yes,status=yes,toolbar=no,location=no,menubar=no");
    $(popup.document).ready(function() {
        console.log('ready!');
        $(popup).on('unload', function() {
            console.log('unloaded!');
            $(popup).on('unload', function() {
                console.log('unloaded 2nd time!');
            } );
        } );
    })    
});​

私の環境では奇妙に機能しますが、投稿したjsfiddleの例では機能しません。ともかく。

于 2012-08-03T10:31:36.193 に答える