>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Взаимодействие разных экземпляров расширений. http://forum.mozilla-russia.org/viewtopic.php?id=25328 |
VONeS > 30-07-2008 20:00:25 |
Здравствуйте! Подкиньте идеи, как можно организовать в одном тулбаре для ФФ генерацию события, чтобы все остальные экземпляры тулбара в других окнах получили это событие? |
Shutnik > 30-07-2008 23:11:27 |
можно перебрать все существующие окна с помощью nsIWindowMediator |
aikus > 31-07-2008 11:03:13 |
ЭЭЭ... Если я правильно помню, то в Линуксе запуск каждого нового окна ФФ равнозначен запуску нового процесса, а nsIWindowMediator перебирает окна одного процесса. |
VONeS > 31-07-2008 12:02:35 |
Проверил, работет нормально, перебирает все окна... А как мне получить ссылку на кнопку если у меня есть ссылка на главное окно ? |
Shutnik > 31-07-2008 12:16:39 |
VONeS > 31-07-2008 12:48:11 |
Выделить код Код: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. |
Shutnik > 31-07-2008 12:56:40 |
эээ, да, document пропустил |
Anton > 31-07-2008 14:25:50 |
Воспользоваться услугами nsIObserverService: http://pastebin.mozilla-russia.org/91718 |