Страницы: 1
Привет,
Проверил на работоспособность nsIThread, см:
http://forum.mozilla-russia.org/viewtopic.php?id=13056
Сам тред бегает, не работает только interrupt(), его можно реализовать самому,
но для этого нужна защита записи общих данных,
есть что нибудь для этого в FireFox, аналоги critical section, event, mutex, semaphore...
Про Event отдельно хочу спросить, как бы организовать оповещение вызывающего(главного) потока,
о том что тред закончил свою работу.
- nsIObserverService должен помочь, можно не отвечать.
П.С. проверял в FF 2.0.0.9. Все описанное интересует для реализации в расширении.
Благодарю.
Привет,
поискал, почитал как получить HTML код загруженной страницы.
Все рекомендации сводятся к использованию XMLSerializer:
var x = document. getElementById ("anyelement"); outerHTML = new XMLSerializer (). serializeToString (x);
У этого метода есть существенное ограничение:
В XML закрывающие тэги не обязательны, т.е. нода без текста может выглядеть так:
В HTML она должна выглядеть так:
Иначе тот же FF не находит закрывающего тэга.
Отсюда вопрос есть ли другие методы получения HTML кода из дом модели.
Или может есть вариант с использованием регулярных выражений для вставки закрывающих тэгов вместо «/>»?
Yan
Спасибо, да documentElement можно клонировать, это nsIDOMHTMLHtmlElement, попробую createTreeWalker для него.
Привет,
Столкнулся с проблемой, метод nsIHTMLDocument.cloneNode() возвращает null.
Может кто-нибудь знает как получить копию документа окна?
var doc = window.content.document; var docClone = doc.cloneNode( true ); // docClone == null
П.С. клон нужен для внесения в него изменений и сохранения в файл.
Привет,
а можно ли путь “ chrome://myextension/chrome/some.jar ” преобразовать в натуральный путь: C:\Documents and Settings\user\Application Data\Mozilla\Firefox\Profiles\profile.default\extensions\{GUID}\chrome\some.jar
?
Вот тут написано нечто, но кривовато как-то:
http://forums.mozillazine.org/viewtopic.php?t=446245
Спасибо.
Привет.
Можно ли jar java файл прикрутить к расширению и использовать классы из него в коде расширения?
Если да то как?
Не густо,
читать тут: http://developer.mozilla.org/en/docs/Working_with_windows_in_chrome_code#Passing_data_between_windows
Привет.
Возникла необходимость организовать обмен данными между инстансами расширения существующих в разных окнах. В связи с этим возник вопрос:
Возможно ли создать переменные которые будут хранить данные и существовать на протяжении всей сессии FF?
Т.е. не они не должны быть привязаны к окнам FF.
Я ярый поклоник Slackware Linux и вхожу в состав ...
Мне очень любопытно, что вы называете исходниками?
http://releases.mozilla.org/pub/mozilla.org/firefox/releases/1.5.0.4/source/
CVS:
:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
я такое делал для алертов (http://imfo.ru/archive/2006/05/23/nsialertsservice_linux), а там вызов prefillAlertInfo() идёт в конце xul. м.б. это и влияло; не знаю, смотреть надо, а времени нет.
Ага, спасиб.
А где эти параметры использовались?
В обработчикак alertWin они были доступны?
var win = ww.openWindow(null, "chrome://...", "_blank", "chrome,titlebar=no,popup=yes", null);
win.arguments = [arg1, arg2, ...];
Спасибо.
Такой способ я пробовал – такие окна появляются нормально, но вот в обработчиках создания и загрузки у них опять arguments == undefined.
Может дело не в параметрах вызова а в месте вызова, я вызываю из события загрузки другого окна, попробую перенести вызов openWindow в визуальный тред.
Привет.
Есть трабл с передачей аргументов окну через 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 аргумент) ни как не влияет на внешний
…Aerina, есть одно замечание и одно предложение:
- файл install.js отсутствует в примере http://www.borngeek.com/firefox/tutorial/, во всяком случае в архиве http://www.borngeek.com/firefox/tutorial/gbltutorial.zip его нет.
- есть предложение добавить файл файл работающего примера, хотя бы того, который при загрузке странички выдает сообщение «Load page…». :)
Спасибо.
Aerina благодарю за ответ. Сразу после своего поста прочёл Ваш – большой респект, это лучшее что есть на эту тему на русском.
Теперь по делу, WinExec и иже с ним мне не очень подходят, ибо это связь в один конец,
Мне бы хотелось иметь обратную связь, получить уведомление о том, что страница загружена (или не загружена) и получить доступ к DOM модели документа.
Поэтому буду изучать Ваш опыт и пытаться.
Спасибо.
Привет.
Возник такой вопрос:
Есть ли программный интерфейс позволяющий запустить FireFox и открыть в нём некоторый URL из другого приложения?
Четно искал ответов, но не нашёл.
Проект Mozilla ActiveX Control похоже пока не реанимировали в FireFox.
В идеале ещё бы достучаться до DOM модели открытого URL :-)
Заранее благодарю.
Страницы: 1