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 事件。其他帖子说这是正常行为,但我似乎没有得到第二个 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 回答