我的弹出窗口中有这个代码(由父窗口打开):
window.onbeforeunload = closeWindow;
function closeWindow(){
}
问题是在刷新父窗口时会触发此代码。有没有办法让这个代码只在弹出窗口实际关闭时触发?
答案 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;"); }
}