我有一个打开多个窗口的Web应用程序。我的问题是当父窗口关闭/刷新时,子窗口保持打开状态。 我试过使用onunload
和onbeforeunload
,但它们都没有捕捉窗口关闭事件(在Chrome和Firefox中)。 我有一个窗口的数组,但刷新后,对它们的引用丢失。父窗口关闭时关闭所有子窗口
有什么其他的方式来抓住这个事件吗?
这是我的代码与关窗(运行closeAll()
外unload
和onbeforeunload
关闭我所有打开的窗口,但不刷新页面时):
window.unload = function() {
closeAll();
}
window.onbeforeunload = function() {
closeAll();
}
var closePopup = function(popup) {
removePopup(popup);
popup.close();
};
var closeAll = function() {
for (var popup in _this.popups) {
closePopup(_this.popups[popup]);
}
}
这仅适用于Chrome,但不能在Firefox和IE(最新版本)。
*“我用onunload的和onbeforeunload试过,但他们没有抓住窗口关闭事件(在Chrome和Firefox)” *'onbeforeunload'绝对不会在Firefox和Chrome的工作。 – 2014-10-12 12:13:37
“*其中没有一个[发现]窗口关闭事件*”这一事实表明您的代码中存在错误,因为正如T.J.克劳德指出,他们在那些命名的浏览器中工作。你可以向我们展示你的尝试,那么我们可以帮忙。 – 2014-10-12 12:15:08
似乎这个代码适用于Chrome,但不适用于Firefox和IE。测试了这些事件之外的'closeAll'函数,它起作用。我也发现这里有多个参考,它不适用于Firefox和其他浏览器http://stackoverflow.com/questions/14645011/window-onbeforeunload-and-window-onunload-is-not-working-in -firefox-safari-o http://stackoverflow.com/questions/20773306/mozilla-firefox-not-working-with-window-onbeforeunload – flaviu 2014-10-12 12:52:58