在 window.open() 中使用 rel="noopener"
Using rel="noopener" in window.open()
所以我知道我可以在使用 target="_blank"
时在 a
标签中应用 rel="noopener
。但我试图将它作为参数传递给 window.open()
,即:
window.open('http://cats.com', '_blank', 'rel=noopener')
但是它似乎没有按我预期的方式工作,因为在用户单击 link 后 opener
对象仍然存在于 window 上。
有什么我想念的吗?或者不能按照我想要的方式完成吗?
我找到了一些很棒的文章,但据我所知,它们并没有完全解决我的用例。
https://developer.mozilla.org/en-US/docs/Web/API/Window/open
https://mathiasbynens.github.io/rel-noopener/
非常感谢。
据我所知,这无法通过 window.open()
参数实现。但是,有一种方法可以实现该行为:
var newWindow = window.open();
newWindow.opener = null;
newWindow.location = 'http://some.url';
这对我有用:
const a = document.createElement("a")
a.href = args.url
a.target = "_blank"
a.rel = "noopener"
a.click()
doc中没有直接示例,但可以像这样使用并且对我有用。
window.open('http://cats.com', '_blank', 'noopener,resizable,scrollbars')
覆盖所有基地
最安全的重定向方式是添加 noopener
、noreferrer
和 window.opener = null
。
const openInNewTab = (url) => {
const newWindow = window.open(url, '_blank', 'noopener,noreferrer')
if (newWindow) newWindow.opener = null
}
然后调用你的新函数
openInNewTab('https://whosebug.com')
第三个参数也可以取these optional values,根据你的需要。
所以我知道我可以在使用 target="_blank"
时在 a
标签中应用 rel="noopener
。但我试图将它作为参数传递给 window.open()
,即:
window.open('http://cats.com', '_blank', 'rel=noopener')
但是它似乎没有按我预期的方式工作,因为在用户单击 link 后 opener
对象仍然存在于 window 上。
有什么我想念的吗?或者不能按照我想要的方式完成吗?
我找到了一些很棒的文章,但据我所知,它们并没有完全解决我的用例。
https://developer.mozilla.org/en-US/docs/Web/API/Window/open https://mathiasbynens.github.io/rel-noopener/
非常感谢。
据我所知,这无法通过 window.open()
参数实现。但是,有一种方法可以实现该行为:
var newWindow = window.open();
newWindow.opener = null;
newWindow.location = 'http://some.url';
这对我有用:
const a = document.createElement("a")
a.href = args.url
a.target = "_blank"
a.rel = "noopener"
a.click()
doc中没有直接示例,但可以像这样使用并且对我有用。
window.open('http://cats.com', '_blank', 'noopener,resizable,scrollbars')
覆盖所有基地
最安全的重定向方式是添加 noopener
、noreferrer
和 window.opener = null
。
const openInNewTab = (url) => {
const newWindow = window.open(url, '_blank', 'noopener,noreferrer')
if (newWindow) newWindow.opener = null
}
然后调用你的新函数
openInNewTab('https://whosebug.com')
第三个参数也可以取these optional values,根据你的需要。