如何检测rel ="noreferrer"支持?

And*_* SK 9 javascript jquery referrals referrer

有什么方法可以用Javascript检测对rel ="noreferrer"的支持吗?

<a href="http://example.com" rel="noreferrer">link without referral</a>
Run Code Online (Sandbox Code Playgroud)

解决方案 - $ .browser已弃用,可能会在未来的jQuery版本中移动到插件中.

var is_webkit = $.browser.webkit;
if(is_webkit) {
    alert('supports rel="noreferrer"');
}
Run Code Online (Sandbox Code Playgroud)

Eli*_*rey 16

我通过创建一个带有name属性的隐藏iframe来检测noreferrer支持,然后创建一个<a rel="noreferrer">target属性等于iframe name属性的链接,并使链接指向当前域上的任何资源.链接about:blank也有效,但它在Firefox和IE中存在问题,因此您应该链接到服务器上的故意空白文件.在iframe中加载资源后,检查一下[the iframe].contentDocument.referrer === "".如果是,noreferrer则支持.

我在hotlink.js中提供了一个实现示例.具体来说,请参阅on_ready.


小智 0

不,没有。Referrer 标头超出了 JavaScript 的范围。

如果它特别重要,您可以检查浏览器(navigator.userAgent)是否是已知支持或不支持的浏览器noreferrer

  • 这是错误的。我使用 iframe 检测到 hotlink.js (https://github.com/eligrey/hotlink.js/blob/master/hotlink.js) 中 noreferrer 支持。 (5认同)