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

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№119-07-2006 00:23:28

HouseF
Участник
 
Группа: Members
Откуда: Питер
Зарегистрирован: 14-03-2006
Сообщений: 16

openWindow & arguments

Привет.
Есть трабл с передачей аргументов окну через nsIWindowWatcher.openWindow.
Пишем:

Выделить код

Код:

function openPage( url, element_url )
{
  var ww = Components.classes["@mozilla.org/embedcomp/window-watcher;1"]
                     .getService(Components.interfaces.nsIWindowWatcher);
  var argstring = Components.classes["@mozilla.org/supports-string;1"]
                          .createInstance(nsISupportsString);
  argstring.data = element_url;

  var paramArray = Components.classes["@mozilla.org/supports-array;1"].createInstance(Components.interfaces.nsISupportsArray);
  paramArray.AppendElement( argstring );  
  var win = ww.openWindow(
    window,
    url,
    "_blank",
    "dialog=no,all",
     argstring );
// если здесь проверить win.arguments выставлен
}

Кто нють сталкивался с передачей аргументов окну из кода расширения?

Особенность поведения которую я заметил с openWindow: если последним аргументом стоит не null, то строка features (4 аргумент) ни как не влияет на внешний вид окна.

Версия FF 1.5.0.4.

Проверил и на FF 2.0 beta 1 - тот же эффект.

Т.е. пока вывод такой:
В nsIWindowWatcher.openWindow есть глюк с передачей аргументов: если последний параметр не null то инициализация окна происходи не полностью, и для него не вызывается событие создания окна (возможно и все остальные).



Спасибо.

Отредактировано HouseF (19-07-2006 15:45:05)

Отсутствует

 

№219-07-2006 17:33:38

Mash
Участник
 
Группа: Extensions
Зарегистрирован: 09-04-2005
Сообщений: 620
Веб-сайт

Re: openWindow & arguments

Как-то при использовании столкнулся, но ломать голову не стал, а просто сделал

Выделить код

Код:

var win = ww.openWindow(null, "chrome://...", "_blank", "chrome,titlebar=no,popup=yes", null);
win.arguments = [arg1, arg2, ...];

Отсутствует

 

№319-07-2006 20:12:18

HouseF
Участник
 
Группа: Members
Откуда: Питер
Зарегистрирован: 14-03-2006
Сообщений: 16

Re: openWindow & arguments

Mash пишет

var win = ww.openWindow(null, "chrome://...", "_blank", "chrome,titlebar=no,popup=yes", null);
win.arguments = [arg1, arg2, ...];

Спасибо.
Такой способ я пробовал – такие окна появляются нормально, но вот в обработчиках создания и загрузки у них опять arguments == undefined.
Может дело не в параметрах вызова а в месте вызова, я вызываю из события загрузки другого окна, попробую перенести вызов openWindow в визуальный тред.

Отсутствует

 

№419-07-2006 20:19:06

Mash
Участник
 
Группа: Extensions
Зарегистрирован: 09-04-2005
Сообщений: 620
Веб-сайт

Re: openWindow & arguments

я такое делал для алертов (http://imfo.ru/archive/2006/05/23/nsialertsservice_linux), а там вызов prefillAlertInfo() идёт в конце xul. м.б. это и влияло; не знаю, смотреть надо, а времени нет.

Отсутствует

 

№519-07-2006 20:43:48

HouseF
Участник
 
Группа: Members
Откуда: Питер
Зарегистрирован: 14-03-2006
Сообщений: 16

Re: openWindow & arguments

Mash пишет

я такое делал для алертов (http://imfo.ru/archive/2006/05/23/nsialertsservice_linux), а там вызов prefillAlertInfo() идёт в конце xul. м.б. это и влияло; не знаю, смотреть надо, а времени нет.

Ага, спасиб.
А где эти параметры использовались?
В обработчикак alertWin они были доступны?

Отсутствует

 

№619-07-2006 21:46:56

Mash
Участник
 
Группа: Extensions
Зарегистрирован: 09-04-2005
Сообщений: 620
Веб-сайт

Re: openWindow & arguments

Посмотрите файлы в toolkit.jar\content\global\alerts. Там эти аргументы используются в prefillAlertInfo().

Отсутствует

 

Board footer

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