我在Javascript中遇到了一些与窗口系统有关的问题:
我有一个网站A,列出了指向其他网站B的链接(目前<a>
标签带有target="_blank"
属性。)
我希望A中的链接在B的新标签页中打开,但B中的页面(我无法编辑)包含一个更改{{1}位置的脚本在这种情况下,包含网站A的选项卡会自行关闭。
所以我正在寻找一种方法来打开一个新的标签/窗口而不引用window.parent
中的当前页面。有可能吗?
答案 0 :(得分:1)
我找到了一种方法来移除对我网站的window.opener
引用,所以如果有人遇到同样的问题,这是一个解决方案:
<a href="javascript:openLink('http://example.com')">Link</a>
var openLink = function(url) {
var w = window.open(url, '_blank');
w.opener = null;
}
答案 1 :(得分:0)
将rel="noopener"
属性添加到锚标记:
<a target="_blank" rel="noopener" href="http://example.com">Link</a>
大多数浏览器都支持此功能:https://caniuse.com/#search=noopener
注意:
rel="noopener"
,但他们也没有为window.opener
设置跨源链接(我无法找到这方面的权威参考资料) ,但是)。window.opener
并且不支持rel="noopener"
的其他浏览器(即Safari 10或其他),@ Elassyo&#39;技术将起作用。