0°

使用rel=noopener

643 个字符,1 张图片,大约需要 1 分钟阅读

好奇查了一下rel=noopener是 什么意思,发现还真是有意思,我把原文转过来。
使用rel=noopener

使用rel=noopener解决了什么问题?

假设你当前在浏览一个页面,上面有个链接(可能是用户输入的):

<a target="_blank" href="http://aaa.com/">点击</a>

在新打开的标签页通过window.oponer ,可以获得当前页面的window 。

这样的话,http://aaa.com(被打开的页面)将获得当前页面的部分控制权,即使新打开的页面是跨域的也照样可以(例如location 就不存在跨域问题)。

大家试试这个   demo(点我)

demo只是跳到了百度首页,但是如果跳到了钓鱼网站呢?

直接提示用户登录,而此时用户注意力集中在新开标签页里,很可能不会注意到原页面在后台的变化。

然后就嘿嘿嘿

建议

最好的当然就是添加rel=noopener啦。

老版本的浏览器可以用 rel=noreferrer

或者说添加下面的js

var otherWindow = window.open();
otherWindow.opener = null;
otherWindow.location = url;

注意:以上js方法在Safari中不成立

原文:

https://mathiasbynens.github.io/rel-noopener/

http://keenwon.com/1548.html

除非注明,否则均为喵喵喵博客原创文章,转载请以链接形式标明本文地址

本文链接:https://www.miaomiaomiao.org/1031.html

0 条回复 A 作者 M 管理员
    当上帝赐给你荒野时,就意味着,他要你成为高飞的鹰
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论