如下面3个打开新窗口的方式,第一个打开的窗口中,window.opener 是 null 。而第二第三个写法可以获得到window.opener。
<a href="./p2.html" target="_blank">link to blank window</a>
<a href="./p2.html" target="a_window">link to blank window</a>
<a href="#" onclick="window.open('./p2.html')"> window open window</a>
我原来的代码大量使用了第一行的写法并且在新窗口中调用 window.opener.xxx ,这下都报错了。
在firefox 和 chrome下测试均是如此。
据查与安全性有关,但网上文章都是在说 target=_blank 打开窗口,新窗口可以通过window.opener作恶,并没有文章说浏览器会禁止获得window.opener 。
我想问一下这个是浏览器新的特性吗?哪儿有相关资料对此有说明。
谢谢!
搜到一篇文章 ,说是chrome考虑自动增加 rel="noopener" 属性 ,哭
https://www.bleepingcomputer.com/news/security/google-chrome-to-block-javascript-redirects-on-web-page-url-clicks
还有一篇firefox的
https://www.ghacks.net/2018/11/30/firefox-security-relnoopener-for-target_blank/