2013-06-11 30 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

希望帮助工作的例子。