【发布时间】:2011-07-03 03:20:29
【问题描述】:
我想使用 document.referrer 进行非正式的推荐人检查。这个元素跨浏览器兼容吗?任何浏览器在尝试引用文档对象时都会抛出错误吗?
【问题讨论】:
标签: javascript dom cross-browser
我想使用 document.referrer 进行非正式的推荐人检查。这个元素跨浏览器兼容吗?任何浏览器在尝试引用文档对象时都会抛出错误吗?
【问题讨论】:
标签: javascript dom cross-browser
是的。主流浏览器都支持它。见:http://www.w3schools.com/jsref/prop_doc_referrer.asp
【讨论】:
w3schools.com 网站上的任何内容。
document.referrer 属性在 DOM 规范中有所描述:
http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-95229140
所以它应该支持跨浏览器。但是,您可以轻松检测实现是否支持此属性,例如
if( 'referrer' in document ) {
console.log(document.referrer);
}
【讨论】:
您不能依赖它来确定请求是否来自浏览器(许多非浏览器机器人也发送一个)。虽然浏览器支持它,但它们也是专门不提供它的隐私程序。有时这是由代理服务器完成的……http://en.wikipedia.org/wiki/HTTP_referrer……如果从 HTTP 安全 (HTTPS) 连接访问网站并且链接指向非安全连接,则不会发送引荐来源网址字段。
所以答案是肯定的,但有例外。
【讨论】:
$_SERVER['HTTP_REFERRER'] 标头值,而不是 javascript document.referrer