问题 如何在没有引用信息的情况下在jQuery中打开链接


我需要在jQuery中打开一个链接,但我需要避免发送引用信息。简而言之,我需要模拟 的rel = “noreferrer”

这可行吗?


8174
2018-03-16 23:30


起源



答案:


我认为每个浏览器都会自动将这些信息添加到所有请求中,并且无法使用JavaScript直接修改它。

在浏览网页后,您确实有以下两种选择:

  1. 从Flash应用程序中启动链接
  2. 从Java小程序中启动链接
  3. 通过引荐来源的cloaker / spoofer服务运行您的URL

所有选项都很丑陋,出于可用性原因我不建议使用它们。我的基础是旧的Google Answers ,但我认为答案是有道理的。


3
2018-03-16 23:48





一个快速的解决方案,可以打开no-referer链接。

function open_link(url)
{
    instance = window.open("about:blank");
    instance.document.write("<meta http-equiv=\"refresh\" content=\"0;url="+url+"\">");
    instance.document.close();
    return false;
}

测试。在FF,IE,Chrome中工作。


10
2017-12-11 16:20



尚未尝试过,但很有道理:o - Andres SK
不适用于Chrome 54.0.2840.99 m - bbodenmiller


答案:


我认为每个浏览器都会自动将这些信息添加到所有请求中,并且无法使用JavaScript直接修改它。

在浏览网页后,您确实有以下两种选择:

  1. 从Flash应用程序中启动链接
  2. 从Java小程序中启动链接
  3. 通过引荐来源的cloaker / spoofer服务运行您的URL

所有选项都很丑陋,出于可用性原因我不建议使用它们。我的基础是旧的Google Answers ,但我认为答案是有道理的。


3
2018-03-16 23:48





一个快速的解决方案,可以打开no-referer链接。

function open_link(url)
{
    instance = window.open("about:blank");
    instance.document.write("<meta http-equiv=\"refresh\" content=\"0;url="+url+"\">");
    instance.document.close();
    return false;
}

测试。在FF,IE,Chrome中工作。


10
2017-12-11 16:20



尚未尝试过,但很有道理:o - Andres SK
不适用于Chrome 54.0.2840.99 m - bbodenmiller


你可能有jQuery写一个链接 rel 属性设置为 noreferrer,然后调用它 $(link_you_made).click()


1
2018-03-16 23:53



这是一个HTML5功能,我认为只有最新的Webkit浏览器才支持它。 - Cᴏʀʏ
确切地说,在Chrome中它完美无缺。 ffx 3.6不是那么多。 IE ...没办法。 - Andres SK
ff7.0.1无效 - Elzo Valugi


不确定你是什么意思打开一个“从jQuery内”的链接,但设置 window.location 直接不会传递任何引用者信息。

因此,如果您想要传递没有推荐信息的链接,您可以执行以下操作:

$("a").click(function() { window.location = $(this).attr("href"); return false; });

编辑:刚做了一些测试,它实际上看起来像Firefox  通过a传递引用者信息 window.location 更改。所以不幸的是,这不是一个完整的/跨浏览器的解决方案......

另外正如sczizzo在下面的评论中指出的那样,有时这可能不可靠(例如,我不确定是否/如何 click 当您在Firefox中间点击链接以在新选项卡中打开它时触发。


1
2018-03-16 23:57



我不确定这会按预期工作。浏览器可以完全绕过jQuery的事件处理程序。 - sczizzo
@sczizzo:你是对的(见更新后的答案),但我认为没有任何万无一失的做法(除了Cory Larson提出的使用flash之类的建议),我认为这是最简单的答案。至少覆盖了 最 的情况。 - Alconja
知道window.location不会削减它是有帮助的,但这个答案是超级进化的,这不是一个论坛,而是一个Q&A网站,考虑改写它。谢谢 - Vajk Hermecz