document.referrer在Firefox中没有按预期工作

时间:2015-03-03 10:06:27

标签: javascript firefox

我尝试使用document.referrer。它在Chrome中按预期工作,但在Firefox中无法按预期工作。

if (document.referrer.indexOf('stringToCheck') > 0) {
    //code goes here    
}

会发生什么,

  1. 如果我从某个页面重定向到此页面,则表示正确 网址(上一页),没关系。
  2. 如果我直接输入网址,它会给我一个空白字符串,那也很好。
  3. 但是,如果页面被重新加载,那么它会给我相同的页面URL Chrome(这是我的预期结果),但在Firefox中仍然提供 上一页网址。在某些情况下,它还会提供一个空白网址。
  4. 会出现什么问题?是否有任何建议或替代方案?

    Firefox版本:37.0

1 个答案:

答案 0 :(得分:3)

关注the spec我们看到了

  

referrer类型DOMString,只读
  返回链接到此页面的页面的URI (IETF RFC 2396)。如果用户导航到页面,则该值为空字符串   直接(不是通过链接,但是,例如,通过书签)。

您正在使用的行为(刷新页面)未明确定义 这意味着这是一个主观解释的问题,浏览器本身都没有做任何错误本身,他们只是不同地解释了这些含义:

  • Chrome假设重新加载页面意味着您已链接到 您当前在同一页面上的页面。
  • 只有当您实际链接到新网页时,Firefox才会将引荐来源更新为非空值。

这两种解释都有用例,当一种或另一种更好时,但由于规范含糊不清,所以两者都没有错或正确。