2013-06-26 50 views
2

我创建了一个窗口,像这样怎么知道什么时候一个弹出窗口关闭

var myWindow = window.open(...) 

我想知道什么时候该窗口关闭回到主代码。可能我可以用myWindow变量做些事情。我试过使用卸载功能,例如:

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

但是这根本没有被调用。

有什么建议吗?

+0

我认为你正在寻找'''myWindow.onbeforeunload = function(){...}''',但它可能不适用于所有浏览器 – peshkira

回答

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(); 
    } 
}; 
0

并非真正的事件处理,但您可以尝试监视您的窗口closed属性与setInterval

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

var timer = setInterval(
        function(){ 
         if(myWindow.closed){ 
          clearInterval(timer); 
          alert('closed'); 
         } 
        }, 1000); 
相关问题