Какой самый надежный способ получить реферер страницы в IE? - PullRequest
1 голос
/ 19 января 2010

Из расширения браузера (BHO) я хочу знать URL-адрес, по которому пользователь перешел на текущую страницу. Я думал, что смогу просто получить document.referrer, но я нахожу это пустым, если ссылки открываются в новом окне. Это просто тяжелые бикини или я могу использовать opener.location.href в некоторых случаях или что-то еще?

В качестве продолжения, я в настоящее время получаю это, когда страница загружена, то есть в DocumentComplete, но я бы предпочел получить ее на BeforeNavigate2. Я не вижу никакого способа сделать это, кроме использования текущего местоположения в качестве реферера на BeforeNavigate2, однако это даст мне текущую страницу в качестве реферера, если пользователи введут новый URL в адресную строку. то есть, похоже, что они перешли со ссылки на сайте A на сайт B, где на самом деле они перешли на сайт A, а затем набрали URL для сайта B.

UPDATE: Из того, что я могу сказать, иногда устанавливается свойство 'opener' (если окно было открыто из javascript?), И поэтому мы можем получить эффективную страницу реферера из этого. Кто-нибудь знает конкретно, в каких ситуациях это доступно?

Ответы [ 2 ]

0 голосов
/ 19 января 2010

Если вы не владеете страницей, на которой есть ссылка на новое окно, и не добавили хеш, идентификатор или что-то, идентифицирующее сеанс или ссылку, вы не сможете перехватить реферер.

0 голосов
/ 19 января 2010

Единственный способ получить эту информацию - от HTTP-реферера , поэтому, к сожалению, вам может не повезти в любых ситуациях, когда это значение заголовка пустое.

...