Совместим ли 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) и ссылка указывает на незащищенное соединение, тогда поле реферера не отправляется.

Итак, ответ да, но с исключениями.