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

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.

№130-07-2008 20:00:25

VONeS
Участник
 
Группа: Members
Зарегистрирован: 22-07-2008
Сообщений: 9
UA: Firefox 3.0

Взаимодействие разных экземпляров расширений.

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

Отсутствует

 

№230-07-2008 23:11:27

Shutnik
Участник
 
Группа: Extensions
Зарегистрирован: 12-11-2005
Сообщений: 3785
UA: Iceweasel 3.0

Re: Взаимодействие разных экземпляров расширений.

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

Отсутствует

 

№331-07-2008 11:03:13

aikus
Участник
 
Группа: Members
Зарегистрирован: 29-07-2008
Сообщений: 5
UA: Firefox 2.0

Re: Взаимодействие разных экземпляров расширений.

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

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

Отсутствует

 

№431-07-2008 12:02:35

VONeS
Участник
 
Группа: Members
Зарегистрирован: 22-07-2008
Сообщений: 9
UA: Firefox 3.0

Re: Взаимодействие разных экземпляров расширений.

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

Отсутствует

 

№531-07-2008 12:16:39

Shutnik
Участник
 
Группа: Extensions
Зарегистрирован: 12-11-2005
Сообщений: 3785
UA: Iceweasel 3.0

Re: Взаимодействие разных экземпляров расширений.

Выделить код

Код:

win.getElementById("<button_id>")

Отсутствует

 

№631-07-2008 12:48:11

VONeS
Участник
 
Группа: Members
Зарегистрирован: 22-07-2008
Сообщений: 9
UA: Firefox 3.0

Re: Взаимодействие разных экземпляров расширений.

Выделить код

Код:

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.

Отсутствует

 

№731-07-2008 12:56:40

Shutnik
Участник
 
Группа: Extensions
Зарегистрирован: 12-11-2005
Сообщений: 3785
UA: Iceweasel 3.0

Re: Взаимодействие разных экземпляров расширений.

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

Отсутствует

 

№831-07-2008 14:25:50

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 2.0
Веб-сайт

Re: Взаимодействие разных экземпляров расширений.

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

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


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

Board footer

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