Javascript检测弹出窗口关闭

时间:2014-05-02 17:22:52

标签: javascript popup

我的弹出窗口中有这个代码(由父窗口打开):

window.onbeforeunload = closeWindow;
function closeWindow(){

}

问题是在刷新父窗口时会触发此代码。有没有办法让这个代码只在弹出窗口实际关闭时触发?

1 个答案:

答案 0 :(得分:1)

嗯。您可以在打开弹出窗口的窗口中尝试这样的操作。

var NewWin = window.open("NewWin", "example.htm", "width=100;height=300;");
// modify styling as necessary etc.
NewWin.onbeforeunload = function() {
window.setTimeout(function() {
if (!NewWin) {
// window has been closed
} else {
// false alarm, just a refresh
}
}, 1000);
}

编辑:为了防止窗口在父页面刷新时重新打开,请在弹出窗口中使用类似的技术

window.opener.onload = function() {
window.opener.NewWin = self;
}

然后将上面代码的第一行更改为:

document.onload = function() {
if (!NewWin) { var NewWin = window.open("NewWin", "example.htm", "width=100;height=300;"); }
}