2

我创建了一个像这样的窗口:

var myWindow = window.open(...)

我想知道这个窗口何时在主代码中关闭。myWindow也许我可以用变量做一些事情。我尝试过使用 unonload 功能,例如:

myWindow.onunload = function () {...}

但这根本没有被调用。

有什么建议么?

4

2 回答 2

3

当孩子关闭时,您可以让孩子调用父窗口上的函数,而不是从父窗口添加事件处理程序:

父窗口

// needs to be somewhere global so the child window can call it
var onChildWindowClose = function () {
    // ...
};

子窗口

window.onunload = function () {
    if (opener && !opener.closed) {
        opener.onChildWindowClose();
    }
};
于 2013-06-26T13:18:38.177 回答
0

不是真正的事件处理,但您可以尝试使用以下命令监控您的窗口closed属性setInterval

myWindow=window.open("","","width=200,height=300");

var timer = setInterval(
                    function(){
                      if(myWindow.closed){
                          clearInterval(timer);
                          alert('closed');
                       }
                     }, 1000);
于 2013-06-26T14:11:32.143 回答