Страницы: 1
Привет.
Есть трабл с передачей аргументов окну через 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)
Отсутствует
Как-то при использовании столкнулся, но ломать голову не стал, а просто сделал
var win = ww.openWindow(null, "chrome://...", "_blank", "chrome,titlebar=no,popup=yes", null); win.arguments = [arg1, arg2, ...];
Отсутствует
var win = ww.openWindow(null, "chrome://...", "_blank", "chrome,titlebar=no,popup=yes", null);
win.arguments = [arg1, arg2, ...];
Спасибо.
Такой способ я пробовал – такие окна появляются нормально, но вот в обработчиках создания и загрузки у них опять arguments == undefined.
Может дело не в параметрах вызова а в месте вызова, я вызываю из события загрузки другого окна, попробую перенести вызов openWindow в визуальный тред.
Отсутствует
я такое делал для алертов (http://imfo.ru/archive/2006/05/23/nsialertsservice_linux), а там вызов prefillAlertInfo() идёт в конце xul. м.б. это и влияло; не знаю, смотреть надо, а времени нет.
Отсутствует
я такое делал для алертов (http://imfo.ru/archive/2006/05/23/nsialertsservice_linux), а там вызов prefillAlertInfo() идёт в конце xul. м.б. это и влияло; не знаю, смотреть надо, а времени нет.
Ага, спасиб.
А где эти параметры использовались?
В обработчикак alertWin они были доступны?
Отсутствует
Страницы: 1