Я хотел бы использовать document.referrer для неофициальной проверки реферера. Совместим ли этот элемент с несколькими браузерами? Будет ли какой-либо браузер вызывать ошибку при попытке ссылаться на объект документа?
Совместим ли document.referrer с перекрестным браузером?
Ответ 1
Свойство document.referrer
описано в спецификации DOM:
http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-95229140
Таким образом, должен поддерживаться кросс-браузер. Однако вы можете легко обнаружить, поддерживает ли реализация это свойство, например
if( 'referrer' in document ) {
console.log(document.referrer);
}
Ответ 2
Вы не можете зависеть от него, чтобы определить, поступает ли запрос от браузера (многие не-браузерные роботы также отправляют один). Хотя он поддерживается браузерами, они также являются программами конфиденциальности, специально не предоставляющими его. Иногда это делается прокси-сервером... http://en.wikipedia.org/wiki/HTTP_referrer... и если доступ к веб-сайту осуществляется через соединение HTTP Secure (HTTPS) и ссылка указывает на незащищенное соединение, тогда поле реферера не отправляется.
Итак, ответ да, но с исключениями.
Ответ 3
Да. Он поддерживается основными браузерами. см. http://www.w3schools.com/jsref/prop_doc_referrer.asp