Какой самый надежный способ получить реферер страницы в IE?
Из расширения браузера (BHO) я хочу знать URL-адрес, который направил пользователя на текущую страницу. Я думал, что смогу просто получить document.referrer, но я нахожу это пустым, если ссылки открываются в новом окне. Это просто тяжелые бикини или я могу использовать opener.location.href в некоторых случаях или что-то еще?
В качестве продолжения, я в настоящее время получаю это, когда страница загружена, то есть на DocumentComplete, но я бы предпочел получить его на BeforeNavigate2. Я не вижу никакого способа сделать это, кроме как использовать текущее местоположение в качестве реферера на BeforeNavigate2, однако это даст мне текущую страницу в качестве реферера, если пользователи введут новый URL в адресную строку. то есть, похоже, что они перешли со ссылки на сайте A на сайт B, где на самом деле они перешли на сайт A, а затем набрали URL для сайта B.
ОБНОВЛЕНИЕ: Из того, что я могу сказать, иногда устанавливается свойство 'opener' (если окно было открыто из javascript?), И поэтому мы можем получить эффективную страницу реферера из этого. Кто-нибудь знает конкретно, в каких ситуациях это доступно?
2 ответа
Если вы не владеете страницей, на которой есть ссылка на новое окно, и не добавили хеш или идентификатор или что-то, идентифицирующее сеанс или ссылку, вы не сможете перехватить реферрера.
Единственный способ получить эту информацию - от реферера HTTP, поэтому, к сожалению, вам может не повезти в любых ситуациях, когда это значение заголовка пустое.