2013-06-26 47 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); 
相關問題