По событию onload надо получить url загруженной страницы.
Обращаться просто к window._content.document.location не решение из-за следующей проблемы:
если открыть несколько вкладок и нажать (re)load на первой, а потом, до загрузки страницы перейти на вторую закладку, то window._content.document.location вернет адрес второй страницы.

Если я правильно понимаю достичь желаемого можно используя event в обработчике onload, только я не пойму как :blush:

пысы: поиском пользовался, ничего не нашел, так что если было - не бейте, а дайте ссылку

*lix пишет

Обращаться просто к window._content.document.location не решение из-за следующей проблемы

а куда вы вешаете обработчик вообще?

если правильно понял вопрос - в расширении. Код примерно такой (лишнее обрезано):

Выделить код

Код:

function actions() {
	
   this.doLoad = doLoad;

   function doLoad(ev) {
      // here we are :)
   }
}

var actions = new actions();
window.addEventListener("load", actions.doLoad,true);
*lix пишет

если правильно понял вопрос - в расширении

нет, вы "немного" неправильно поняли ;)

вы хотите выполнить код (получить урл) при загрузке определённого таба браузера?
почему же вы тогда вешаете обработчик на window? в каком chrome выполняется скрипт?
какие табы вы имеете ввиду в первом посте?

вы хотите выполнить код (получить урл) при загрузке определённого таба браузера?
почему же вы тогда вешаете обработчик на window? в каком chrome выполняется скрипт?
какие табы вы имеете ввиду в первом посте?

1. не определенного, а любого. а уж урл конечно того, который загрузился.
2. куда вешать? перекрывается browser.xul и navigator.xul
3. ммм... Вкладки. Если в одном окне фокса открыто две страницы, то будут две вкладки. Вы меня в тупик поставили, какие еще табы бывают?

*lix
так более понятно, хотя я не уверен, что вызываемый из browser.xul window будет таббраузером (tabbrowser)
из расширения у меня получилось повесить обработчик так (onload почему-то не срабатывает, поставил DOMContentLoaded, посткольку практически одно и то же):

Выделить код

Код:

var browser=Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator).getMostRecentWindow("navigator:browser").getBrowser();
browser.addEventListener("DOMContentLoaded",function(event){
  alert(event.target.location.href);
} , false);
shutnik пишет

...onload почему-то не срабатывает...

browser (или tabbrowser - точно не помню) не пропускает onload в bubbling phase. Можно "поймать" onload в capture phase (т. е., с true третьим аргументом в addEventListener) и в обработчике узнать url документа через event. originalTarget. location. href (если обработчик поставлен на window).

спасибо, все получилось, главное - надо было использовать событие DOMContentLoader, а не load.

I'll be back )

По некоторым причинам получилось что мен надо все же ловить событие полной загрузки страницы - с картинками, флешем и т.п. Ясное дело, DOMContentLoaded срабатывает до всего этого. А ловя событие load я не могу узнать url загруженной страницы.
Если бы была одна вкладка, то и ладно - ясно что за страница, но вкладок много и грузятся страницы и их контент ясное дело не последовательно.

Выручите, а? Может есть способ получить url из события load?

Прошу прощения, когда же я, блин, буду внимательно читать чужие мессаги