【发布时间】:2021-05-18 09:23:59
【问题描述】:
在我们的软件中,我们有一个带有链接的页面,该链接使用 target='_blank' 在新选项卡中打开同一站点内的页面。当用户在新打开的页面上完成工作时,他们单击一个按钮,当页面刷新时,它会调用以下代码。
window.opener.location.href = window.opener.location.href; window.close();
这已经运行了很长时间,但在上周左右停止在所有浏览器中运行。当我在谷歌上搜索有关正在实施的新安全限制会导致这种情况时,我似乎找不到任何东西。知道发生了什么以及如何让它再次工作吗?我已经在 chrome、firefox、edge 和 IE11 中测试了以下代码。除了 IE11 window.opener 之外的所有内容都是空的。在 IE 中它不是。浏览器中是否有可能导致这种情况的新安全设置?
<html>
<body>
<a href="page2.html" target="_blank">click me</a>
</body>
</html>
<html>
<body>
<script>
alert(window.opener === null);
</script>
</body>
</html>
【问题讨论】:
-
代码
window.opener.location.href = window.opener.location.href的意义是什么?它将当前网址分配给自己。 -
新窗口允许用户更改与打开器窗口中的数据相关的数据。因此,当它们完成后,我们希望基本上刷新打开器以显示最新数据。
-
那为什么不使用
.reload()呢? -
.reload() 不是函数。但即使没有,问题是 window.opener 为空。如果它为空,我无法调用 reload。
-
不可能所有浏览器都同时实现这样的改变。你确定你的代码没有改变吗?
标签: javascript google-chrome firefox browser microsoft-edge