【问题标题】:Is document.referrer cross browser compatible?document.referrer 跨浏览器是否兼容?
【发布时间】:2011-07-03 03:20:29
【问题描述】:

我想使用 document.referrer 进行非正式的推荐人检查。这个元素跨浏览器兼容吗?任何浏览器在尝试引用文档对象时都会抛出错误吗?

【问题讨论】:

    标签: javascript dom cross-browser


    【解决方案1】:

    是的。主流浏览器都支持它。见:http://www.w3schools.com/jsref/prop_doc_referrer.asp

    【讨论】:

    • 即使这是真的,我也不会依赖 w3schools.com 网站上的任何内容。
    • 这里有一个稍微可信的消息来源证实了同样的事情,所以我认为 w3schools.com 可能是正确的。 code.google.com/p/doctype/wiki/DocumentReferrerProperty
    • 谢谢大家。我从没想过 w3schools 提供的数据不准确。
    • 有趣的是,为了支持你的 cmets.. 他们的例子在从这个页面引用时不起作用。
    【解决方案2】:

    document.referrer 属性在 DOM 规范中有所描述:

    http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-95229140

    所以它应该支持跨浏览器。但是,您可以轻松检测实现是否支持此属性,例如

    if( 'referrer' in document ) { 
        console.log(document.referrer);
    }
    

    【讨论】:

    • 只是在旁边,使用 console.log 测试浏览器支持时要小心,因为并非所有浏览器都支持它本身。
    【解决方案3】:

    您不能依赖它来确定请求是否来自浏览器(许多非浏览器机器人也发送一个)。虽然浏览器支持它,但它们也是专门不提供它的隐私程序。有时这是由代理服务器完成的……http://en.wikipedia.org/wiki/HTTP_referrer……如果从 HTTP 安全 (HTTPS) 连接访问网站并且链接指向非安全连接,则不会发送引荐来源网址字段。

    所以答案是肯定的,但有例外。

    【讨论】:

    • 我认为您引用的是服务器端 $_SERVER['HTTP_REFERRER'] 标头值,而不是 javascript document.referrer
    猜你喜欢
    • 2012-08-09
    • 2015-03-07
    • 1970-01-01
    • 2016-09-30
    • 2011-06-07
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    相关资源
    最近更新 更多