2013-06-11 69 views
4

我有一段代碼打開了一個窗口:如何檢測JS中外部窗口的關閉?

$("#authorization_link").click(function() { 
    win = window.open($(this).attr("href"),'width=800,height=600'); 
    }); 

現在我想在窗口"win"被封閉運行另一個塊。什麼是事件,以及如何在其檢測中運行代碼?

+0

你可以在那裏添加'onbeforeunload'處理程序,它將調用'opener'窗口 – Cherniv

+0

Palash感謝您的指針,但在這種情況下衍生出的窗口是另一個我無法控制的網站。 – AKWF

+3

你可以用'setInterval'運行並檢查'win'是否爲'!='null – Cherniv

回答

2

你必須使用間隔檢查當/如果窗戶是關閉下面是你如何做到這一點:

win = window.open($(this).attr("href"),'width=800,height=600'); 

function checkIfWinClosed(intervalID){ 
    if(win.closed){ 
     alert('windowsClosed'); 
     clearInterval(intervalID); 
    } 
} 
var interval = setInterval(function(){ 
    checkIfWinClosed(interval); 
},1000); 

這裏是在fiddle

希望幫助工作的例子。