Здравствуйте! Подкиньте идеи, как можно организовать в одном тулбаре для ФФ генерацию события, чтобы все остальные экземпляры тулбара в других окнах получили это событие?
Грубо говоря, есть кнопка с фиксацией. Когда я ее нажимаю, чтобы кнопки нажались во всех тулбарах во всех запущенных экземплярах ФФ, т.е. необходимо чтобы состояние кнопки (нажата - нет) было одинаково во всех запущенных копиях тулбара.

можно перебрать все существующие окна с помощью nsIWindowMediator

можно перебрать все существующие окна с помощью nsIWindowMediator

ЭЭЭ... Если я правильно помню, то в Линуксе запуск каждого нового окна ФФ равнозначен запуску нового процесса, а nsIWindowMediator перебирает окна одного процесса.
До дома доберусь проверю.

Проверил, работет нормально, перебирает все окна... А как мне получить ссылку на кнопку если у меня есть ссылка на главное окно ?

Выделить код

Код:

win.getElementById("<button_id>")
Выделить код

Код:

function setButtonState(bState)
{	
	var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
	var enumerator = wm.getEnumerator("navigator:browser");
	while(enumerator.hasMoreElements()) {
  		var win = enumerator.getNext();
  		win.getElementById("infoaxetb_lg").checked = bState;
  		
  	// |win| is [Object ChromeWindow] (just like |window|), do something with it
	}
	
}

Сие не работает:

Выделить код

Код:

Ошибка: win.getElementById is not a function
Источник: chrome://...file.js
Строка: 226.

эээ, да, document пропустил :)

как можно организовать в одном тулбаре для ФФ генерацию события

Воспользоваться услугами nsIObserverService: http://pastebin.mozilla-russia.org/91718