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

mpe*_*pen 1 javascript internet-explorer-11 windows-8.1

我的网站取决于弹出窗口.到目前为止,我一直在使用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 中不会出现此问题.

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

mpe*_*pen 7

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

if(!window.opener) window.opener = window.open('','mainwin');
Run Code Online (Sandbox Code Playgroud)

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