Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么在此特定版本的Windows/IE中未定义window.opener?_Javascript_Windows 8.1_Internet Explorer 11 - Fatal编程技术网

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

Javascript 为什么在此特定版本的Windows/IE中未定义window.opener?,javascript,windows-8.1,internet-explorer-11,Javascript,Windows 8.1,Internet Explorer 11,我的网站依赖于弹出窗口。到目前为止,我一直在使用window.opener.location.reload()刷新父窗口,但突然我的用户报告弹出窗口没有关闭。此外,调用window.close()会导致“您正在查看的网页正在尝试关闭选项卡”警告 我已设法在运行IE 11.0.9431.228的Windows 8.1 Pro预览版中重现此问题,但在Windows 8.1企业评估版和IE 11.0.9600.16438中未出现此问题 还有其他人经历过这个问题吗?为什么不设置window.opener

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

我已设法在运行IE 11.0.9431.228的Windows 8.1 Pro预览版中重现此问题,但在Windows 8.1企业评估版和IE 11.0.9600.16438中未出现此问题

还有其他人经历过这个问题吗?为什么不设置
window.opener
?所有弹出窗口都是用
窗口打开的。打开

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

if(!window.opener) window.opener = window.open('','mainwin');
这允许我刷新主窗口,但调用
window.close()
仍会导致“您正在查看的网页正在尝试关闭选项卡”警告。

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

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

这允许我刷新主窗口,但调用
window.close()
仍会导致“您正在查看的网页正在尝试关闭选项卡”警告。

相同的URL、相同的域、相同的安全区域?可能是IE的“受信任站点”或“受保护模式”导致的。看看这里,也许可以找到一个解决办法:@YuriyGalanter我试着重置所有的安全设置,并一路调低它们。仍然发生。还尝试禁用保护模式。仍然发生。@YuriyGalanter和yes,相同的URL和域。正如我所说,它可以在其他浏览器中工作,甚至在相同的操作系统和IE的主要版本中工作;我能看到的唯一不同的是次要版本。一个在VirtualBox下运行,另一个在远程桌面下运行,但我看不出这有什么变化。相同的URL、相同的域、相同的安全区域?可能是IE的“受信任站点”或“受保护模式”造成的。看看这里,也许可以找到一个解决办法:@YuriyGalanter我试着重置所有的安全设置,并一路调低它们。仍然发生。还尝试禁用保护模式。仍然发生。@YuriyGalanter和yes,相同的URL和域。正如我所说,它可以在其他浏览器中工作,甚至在相同的操作系统和IE的主要版本中工作;我能看到的唯一不同的是次要版本。一个在VirtualBox下运行,另一个在远程桌面下运行,但我看不出这有什么变化。
“您正在查看的网页正在试图关闭选项卡警告。
“您在最初的问题中从未提到过这一点…@zyboxenterprises:不,我没有。我不想把问题过分复杂化。我认为,如果浏览器正确设置了
window.opener
,那么
window.close()
不应该引起警告,因此解决一个问题应该解决另一个问题。如果不是的话,这是一个新问题:-)如果你这么说的话,回答这个问题可能会容易得多,lol
“你正在查看的网页试图关闭标签警告。
“你在原来的问题中从未提到过这一点…@zyboxenterprises:不,我没有。我不想把问题过分复杂化。我认为,如果浏览器正确设置了
window.opener
,那么
window.close()
不应该引起警告,因此解决一个问题应该解决另一个问题。如果不是的话,这是一个新问题:-)如果你这么说的话,回答这个问题可能会容易得多,哈哈