Всем дорого дня! Вчера занялся написанием собственного расширения для Firefox. Оказалось что это увлекательно =)
Но вот в одном месте у меня затык.
Есть простенькая функция:

Выделить код

Код:

function load_url(url)
{
window._content.document.location = url;
window.content.focus();
}

Все меня в ней устраивает кроме одного. Необходимо добавить передачу реферера. Почитал тут про создание обсервера и дальнейшее внедрение заголовк, посмотрел исходники кучи расширений, но везде что-то слишком сложно и не совсем то.
Хотелось бы получить просто скелет функции которая открывает новый урл в окне и передает реферер.

Буду благдарен за помощь.

addTab
tabbrowser
Ну, и сам код, в котором все это определяется: view-source:chrome://browser/content/tabbrowser.xml

Выделить код

Код:

gBrowser.addTab("http://ya.ru/", makeURI("http://some.other.site.com/as/referer"));

Или так:

Выделить код

Код:

gBrowser.loadURI("http://ya.ru/", makeURI("http://some.other.site.com/as/referer"));

11-08-2009 16:28:33
Функция makeURI() определяется в chrome://global/content/contentAreaUtils.js

Infocatcher пишет

addTabtabbrowserНу, и сам код, в котором все это определяется: view-source:chrome://browser/content/tabbrowser.xmlКод:gBrowser.addTab("http://ya.ru/", makeURI("http://some.other.site.com/as/referer"));Или так:Код:gBrowser.loadURI("http://ya.ru/", makeURI("http://some.other.site.com/as/referer"));Добавлено Сегодня 16:28:33Функция makeURI() определяется в chrome://global/content/contentAreaUtils.js
                    Отредактировано Infocatcher (Сегодня 16:32:06)

Спасибо! ВРоде сдвиг с мертвой точки есть =) Теперь проблема идентифицировать нужный таб и выцепить из него тело документа.

Что подразумевается под «нужным табом» и каковы критерии нужности?

Выделить код

Код:

var elt = content.document.documentElement;
alert(elt.innerHTML || new XMLSerializer().serializeToString(elt));
Выделить код

Код:

var locs = gBrowser.browsers.map(
	function(br) {
		return br.currentURI.spec;
	}
);
alert(locs.join("\n"));

Спасибо! С этим тоже разобрался =)
Будут вопросы - отпишу на форуме =)