document.referrer - 限制?

时间:2011-06-14 15:12:54

标签: php javascript

我无法使用document.referrer获取大量引荐网址。我不确定发生了什么。如果有人有任何关于其局限性的信息(比如哪个浏览器不支持什么)等,我将不胜感激。

是否还有其他我可以使用的东西(或许是另一种语言),涵盖更多的浏览器等?

4 个答案:

答案 0 :(得分:1)

我不会在您的Javascript代码中对document.referrer抱有任何信任。该值在客户端请求标头(Referer)中发送,因此可以进行欺骗和操作。

有关更多信息,请参阅我对这个服务器端HTTP_REFERER服务器变量的问题的回答:

  

How reliable is HTTP_REFERER

答案 1 :(得分:1)

您正在寻找哪种浏览器?如果引荐网站通过window.open('some link')而非常规<a>标记发送流量,则IE将不会看到引荐来源。它认为这是一个新请求,类似于你直接转到URL(在这种情况下没有引用者)。 Firefox和Chrome没有相同的问题。

这不仅仅是一个javascript限制,HTTP_REFERRER在这种特定情况下也无效。

答案 2 :(得分:0)

为了确保您在同一页面上,您确实知道如果有人直接在其Web浏览器中键入URL,则document.referrer属性为空,对吧?话虽这么说,你可能会对JavScript method to get all HTTP headers感兴趣。如果您更喜欢PHP(因为您正在使用该标记),standard $_SERVER variable将提供可用的信息。请注意,该信息仅与报告Web浏览器和服务器一样可靠,如Kev所述。

答案 3 :(得分:0)

在以下情况下,document.referrer将为空字符串:

  • 您通过输入URL直接访问站点;
  • 您通过单击书签来访问站点;
  • 源链接包含rel="noreferrer";
  • 源是本地文件;

签出https://developer.mozilla.org/en-US/docs/Web/API/Document/referrer