geo*_*rtz 5 javascript browser firefox google-chrome microsoft-edge
在我们的软件中,我们有一个带有链接的页面,该链接可以使用 target='_blank' 在新选项卡中打开同一站点内的页面。当用户完成新打开的页面上的工作时,他们单击一个按钮,当页面刷新时,它会调用以下代码。
window.opener.location.href = window.opener.location.href; window.close();
Run Code Online (Sandbox Code Playgroud)
这多年来一直运行良好,但在上周左右,它在所有浏览器中停止运行。当我用谷歌搜索有关正在实施的新安全限制会导致这种情况时,我似乎找不到任何内容。知道发生了什么事以及如何让它再次运行吗?我已经在 chrome、firefox、edge 和 IE11 中测试了以下代码。在除 IE11 之外的所有窗口中,window.opener 均为 null。在 IE 中则不然。浏览器中是否有新的安全设置可能会导致此问题?
<html>
<body>
<a href="page2.html" target="_blank">click me</a>
</body>
</html>
<html>
<body>
<script>
alert(window.opener === null);
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我不确定您在哪个版本的 Chrome 浏览器上测试了代码。为了避免“tab-napping”攻击,许多浏览器已经开始默认为针对 _blank 的锚点实现 noopener 行为。
Chrome 在版本 88中启用了 noopener 行为。
Safari 在版本 68中也启用了此功能。
我找不到任何有关 IE 11 更改的参考。但值得尝试在锚标记中添加 rel="opener" 并使用 target=_blank
| 归档时间: |
|
| 查看次数: |
3054 次 |
| 最近记录: |