为什么在此特定版本的Windows / IE中未定义window.opener?

时间:2014-06-03 17:49:47

标签: javascript windows-8.1 internet-explorer-11

我的网站取决于弹出窗口。到目前为止,我一直在使用window.opener.location.reload()刷新父窗口,但我的用户突然报告弹出窗口没有关闭。此外,调用window.close()会导致"您正在查看的网页正在尝试关闭标签"警告。

我已经设法在运行IE 11.0.9431.228的Windows 8.1 Pro Preview中重现此问题,但问题在Windows 8.1 Enterprise Evaluation和IE 11.0.9600.16438中出现 not

还有其他人遇到过此问题吗?为什么不设置window.opener?所有弹出窗口都以window.open打开。

1 个答案:

答案 0 :(得分:7)

我找到了部分“解决方案”。如果您先给它命名(例如window.name='mainwin'),您可以获取父窗口,然后您可以通过以下方式访问它:

if(!window.opener) window.opener = window.open('','mainwin');

这让我可以刷新主窗口,但是调用window.close()仍然会导致“您正在查看的网页正在尝试关闭标签”警告。