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

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

这可行吗?

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

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

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

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

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

function open_link(url) { instance = window.open("about:blank"); instance.document.write(""); instance.document.close(); return false; } 

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

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

通过打开“来自jQuery内部”的链接不确定你的意思,但是直接设置window.location不会传递任何引用者信息。

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

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

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

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