Полезная информация

Многие проблемы быстрее решаются поиском по форуму и чтением FAQ, чем созданием новой темы и томительным ожиданием ответа.

№106-01-2013 14:23:22

Большой
Участник
 
Группа: Members
Зарегистрирован: 10-10-2011
Сообщений: 127
UA: Firefox 13.0

Как получить referrer

Добрый день!

Как получить referrer?

Выделить код

Код:

var ioService = Components.classes["@mozilla.org/network/io-service;1"]
                          .getService(Components.interfaces.nsIIOService);

var referrerURI = ioService.newURI(aURI, null, null);
var channel = ioService.newChannelFromURI(referrerURI);
var httpChannel = channel.QueryInterface(Components.interfaces.nsIHttpChannel);
alert(httpChannel.referrer);

Так получаю null

Отсутствует

 

№206-01-2013 15:42:58

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2249
UA: Firefox 10.0

Re: Как получить referrer

Большой пишет

Как получить referrer?

Ну, вроде, получил ведь. И - да, он действительно null.
Возможно предпоследняя строка не нужна вовсе. Добавь:

Выделить код

Код:

alert(channel);
alert(channel === httpChannel);

Отсутствует

 

№306-01-2013 17:09:42

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2249
UA: Firefox 10.0

Re: Как получить referrer

Dumby пишет

Возможно предпоследняя строка не нужна вовсе.

Это я погорячился, без неё referrer не хочет устанавливаться.

скрытый текст

Выделить код

Код:

var site = "https://target.com";
var ref = "http://referrer.org";

var ioService = Components.classes["@mozilla.org/network/io-service;1"]
                          .getService(Components.interfaces.nsIIOService);
                          
var channel = ioService.newChannelFromURI(makeURI(site, null, null));

channel.QueryInterface(Components.interfaces.nsIHttpChannel);

channel.referrer = makeURI(ref, null, null);

alert(channel.referrer.spec);

Отсутствует

 

№406-01-2013 17:15:03

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 17.0

Re: Как получить referrer

Большой
nsIHttpChannel.setRequestHeader()
nsIHttpChannel.getRequestHeader()
Ну, или и правда, вроде, можно через свойство referrer присваивать. Но изначально там ничего нет.

Отредактировано Infocatcher (06-01-2013 17:17:05)


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№507-01-2013 00:30:58

Большой
Участник
 
Группа: Members
Зарегистрирован: 10-10-2011
Сообщений: 127
UA: Chrome 23.0

Re: Как получить referrer

Возможно я неправильно выразился.
Мне необходимо узнать url с которого произошел переход пользователя по ссылке.
Вешать на каждую ссылку лисинер неразумно.

Отсутствует

 

№607-01-2013 01:10:43

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 17.0

Re: Как получить referrer

У каждого окна есть window.document.referrer.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№708-01-2013 02:47:15

Большой
Участник
 
Группа: Members
Зарегистрирован: 10-10-2011
Сообщений: 127
UA: Chrome 23.0

Re: Как получить referrer

Infocatcher пишет

У каждого окна есть window.document.referrer.

Так он пустой.

okkamas_knife пишет

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

Незнал

Добавлено 08-01-2013 03:09:56

okkamas_knife пишет

сервер парсит этот хттп запрос и генеря страничку вставляет в неё это значение.

И вытащить разве нельзя.

okkamas_knife пишет

скриптом на страничке Б мы можем узнать о страничке А только вытащив его из команды перехода назад

Почему сам же говорил ранее что вставляет

Отредактировано Большой (08-01-2013 03:09:56)

Отсутствует

 

№824-01-2013 17:23:53

Большой
Участник
 
Группа: Members
Зарегистрирован: 10-10-2011
Сообщений: 127
UA: Opera 12.1

Re: Как получить referrer

решил так.

Выделить код

Код:

onLocationChange: function(aProgress, aRequest, aURI) {
     if(aRequest.referrer && aRequest.referrer.spec)  
         alert("url = " + aURI.spec + "    referer= " + aRequest.referrer.spec);
}

Отредактировано Большой (24-01-2013 17:24:12)

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]