我正在通过javascript打开一个新窗口,其中包含在父窗口中更改用户时需要关闭的用户特定信息。
我保存子窗口引用,以便稍后关闭它。代码看起来像这样,
if (globals.newWindow) {
globals.newWindow.focus();
} else {
var url = $link.attr("href");
globals.newWindow = window.open(url, "windowName");
}
稍后,要关闭子窗口,我会这样做,
if (globals.newWindow) {
globals.newWindow.close();
globals.newWindow = null;
}
这在FireFox和Google Chrome中运行良好。但是,在Internet Explorer中,当我希望关闭窗口时,我会收到“拒绝访问”。
为什么?
更新
关闭父窗口并再次打开它,然后单击该功能以打开新窗口将刷新仍然打开的子窗口。之后,clickgin关闭函数将关闭子窗口。
更新2:
我在调试时看到的另一件事是,当访问被拒绝时,窗口也已被视为已关闭(其关闭属性为true)。这可能就是为什么它没有关闭?
更新3:
FireFox和IE之间的区别在于,在关闭FireFox时,window.closed == false(这是有意义的,因为它还没有关闭),而在IE窗口中.closed == true。 在运行window.close();
之前,IE认为窗口已经关闭这个原因对我来说完全是个谜。