html - 为什么人们使用 `rel="noopener noreferrer"` 而不仅仅是 `rel="noreferrer"`
问题描述
我经常看到以下模式:
<a href="<external>" target="_blank" rel="noopener noreferrer"></a>
但据我所知,noreferrer
暗示noopener
. 那么为什么noopener
这里甚至需要呢?
https://html.spec.whatwg.org/multipage/links.html#link-type-noreferrer
<a href="..." rel="noreferrer" target="_blank">
具有与 相同的行为<a href="..." rel="noreferrer noopener" target="_blank">
。
请注意,浏览器支持比https://caniuse.com/#feat=rel-noreferrer https://caniuse.com/#feat=rel-noopenernoreferrer
之一更广泛noopener
解决方案
将“noopener”和“noreferrer”组合在一起的标签rel表示由于noreferrer标签,不应将推荐人信息传递给所链接的网站,也可以防止新打开的页面控制传递流量的页面。
rel="noreferrer"
属性与属性的作用相同rel="noopener"
,也会阻止referrer header被发送到新页面。
大多数现代浏览器都支持 noopener,但是当它不支持时,我们可以使用 noreferrer。实际上,使用它们来支持旧版浏览器是有意义的。也没有充分的理由删除rel="noopener"
,因为它似乎没有任何缺点,而且它被广泛考虑。
推荐阅读
- python - 在正则表达式中使用组时 re.findall() 和 re.finditer() 之间的区别?
- javascript - 如何显示变量JS的排行榜
- r - 在 SparkR 和 sparklyr 之间导入 parquet 文件所需的时间差异
- swift - 嵌套数组的 Swift 可选
- amazon-web-services - 无法从 AWS Athena 表中选择数据
- reactjs - 无法将 ReactJS 应用程序与谷歌分析连接
- c - C中三角函数的单精度参数减少
- javascript - 如何发布多页相同的数据
- sql - 在 bigquery 中从 unixtime 获取日期
- python - 数组的动态循环