【发布时间】:2018-03-14 11:26:20
【问题描述】:
我使用window.open('') 和'_blank' 作为第二个参数在新选项卡中打开我的链接例如。 window.open('http://google.com', '_blank')
但是,最近我添加了第三个参数'noopener',以便window.opener 在新选项卡中变为空,并且新选项卡无法访问父选项卡/窗口。即window.opener 是null
window.open('http://google.com', '_blank', 'noopener')
所以上面的代码解决了安全问题,但不是打开一个新选项卡,而是一个新窗口开始打开,这不是我所期望的。我的浏览器设置相同,没有对其进行任何更改。
我可以做些什么来让这段代码打开新标签而不是新窗口?我不想删除 noopener 作为第三个参数
【问题讨论】:
-
我不认为这是重复的,@Stender 发布的链接是关于没有让“noopener”工作,而不是它改变了选项卡/窗口行为。这在所有浏览器中都发生吗?可能是浏览器错误/不一致。
-
是的,它在 Chrome、Firefox 和 IE 中对我来说都是一样的
-
我想正确的语法应该是
noopener=1/true/yes。看起来所有其他窗口功能都会以某种方式连接到带有 chrome 的窗口,而noopener是唯一一个实际上在选项卡中也有用的功能。也许在浏览器实现中已经忘记了这一点,当存在 windowFeature 参数时,窗口将自动打开到新窗口而不是选项卡。我用FF做了一个小测试,如果存在windowFeatures参数,它会打开一个新窗口,参数的值无关紧要,甚至可以是乱码......
标签: javascript window.open window.opener