Страницы: 1
Shutnik, banbot, сиба, то что надо!!! ))
Всем привет!
Вылезла такая маленькая проблема: сделал extension для Firefox 3. Все классно, все работает. Но есть небольшой баг, а именно, при попытке установить (обычный драг-энд-дроп) XPI файл в другие Mozilla-based браузеры (Netscape, SeaMonkie) выдаются не очень понятные для пользователя сообщения:
1. О том, что невозможно проверить цифровую подпись.
2. О том, что install.js не найден (более критично).
Как это все корректно пофиксать? Т.е. можно при создании extension указать, что он ТОЛЬКО (!!) для Firefox и при попытке установки в не-FF выдавать красивое окошко с сообщением об этом ограничении?
СУВ, Kuvaldis
Elexander
Пасибки )
Elexander
Сиба!:)
Всем привет! Не получается отловить событие "прерывание загрузки страницы" (когда в статусбаре надпись "остановлено"). Ковырялся с https://developer.mozilla.org/En/NsIWebProgressListener но так и не понял. Может есть какой-нибудь еще способ?
СУВ, Kuvaldis
Всем привет! Пытаюсь добавить новый таб на старте браузера. Делаю так
var Taggerator = { Load: function() { gBrowser.selectedTab = gBrowser.addTab("http://google.com"); } } window.addEventListener("load", function(event) { Taggerator.Load(event); }, false);
Но таб не открывается. Ставил в вызов alert(). И вроде бы браузер еще не рендерится. Если дернуть этот же метод Load() по клику на какой-нибудь кнопке в тулбаре, то он отрабатывает.
Вероятно, я должен вызывать добавление таба в другом месте, но каком???
Прошу совета бывалых )
СУВ, Kuvaldis
02-04-2009 21:45:49
Еще мини-вопрос: как в JavaScript debugger поставить брейкпоинт на методе Load() чтобы он отработал на старте браузера? В Win API я мог вызвать __asm int 3 для принудительного прерывания по отладке. А как здесь?
Всем привет!
Делаю тулбар для Firefox. Один из юзкейсов - логин для пользователя, который вводится в IFRAME, добавленный на страницу вместе с обрабатывающим его скриптом. Все прекрасно работает, кроме "about-blank" страниц. Причем проблемы как при добавлении из JS, так и из С++ XPCOM. Смотрел в С++ коды ошибок (nsresult). Все проходит без сваливаний, но... HTML документ остается без изменений.
Может кто сталкивался с такой проблемой? Workaround - это при необходимости логина открывать предопределенную страницу для этого случая, но хотелось бы разобраться с about:blank (IE, кстати, разрешает модификацию)
СУВ, Kuvaldis
Всем привет!
Не вижу в упор, как загрузить URL в текущую страницу просто. Нашел только такой вариант:
nsIDOMDocument --> nsIDOMNSDocument --> GetLocation --> nsIDOMLocation и через последний интерфейс работа. Но это как-то из пушек по воробьям.
Тыкните носом в более короткое решение. :)
СУВ, Kuvaldis
Infocatcher, сиба!!
Вопрос решен, много есть несколько вариантов Gecko 1.9.:)
Всем привет!
Мне нужно получить список элементов по имени тега, наличию атрибута определенного и его значению. В IE я сначала получал все элементы HTML документа через get_all() вызов (сразу коллекция) и далее уже проверял атрибуты. В Firefox нашел только вызов GetElementsByTagName(). НО!! Ему нельзя передать пустую строку, чтобы получить все элементы. Хотел уже было итератор использовать nsIDOMNodeIterator. Но это только с Firefox 3.1...
Нужен совет! :)
СУВ, Kuvaldis
lemax, попробовал я выкрутиться, но все равно остались проблемы.
Т.к. я скачал Gecko 1.9, то по ссылке http://mxr.mozilla.org/mozilla1.9.1/source/browser/components/sessionstore/src/nsSessionStore.js взял idl-файл нужного мне интерфейса. Сгенерил хедер, в коде использовал следующую конструкцию
nsCOMPtr<nsISessionStore> sessionStore = do_GetService("@mozilla.org/browser/sessionstore;1");
Т.е. обычное создание объекта сервиса.
Но в sessionStore возвращался ноль. Поэтому попробовал следующее
[code]bool CToolBandObj::IsDocumentLoaded(nsIDOMWindow *domWindow)
{
static const nsEmbedString WindowStateLoaded(L"");
bool result = false;
nsCOMPtr<nsISupports> rawSessionStore = do_GetService("@mozilla.org/browser/sessionstore;1");
if (rawSessionStore != NULL)
{
nsresult retval;
nsCOMPtr<nsISessionStore> sessionStore = do_QueryInterface(rawSessionStore, &retval);
if (sessionStore != NULL)
{
nsEmbedString windowSta
Всем привет!
В очередной раз при переносе кода из IE в Firefox возникают вопросы
На данный момент не понятно, как получить статус документа (не событие, а так, как делается в IE - window.document.readyState ).
Нашел вот это - https://developer.mozilla.org/en/nsISessionStore
Но не очень понятно, где найти этот интерфейс (в XUL-Runner 1.9 такого header-файла нет). И сработает ли?..
В общем, прошу помощи
СУВ, Kuvaldis
Elexander, пасиба :)
Всем привет!
Нужно из XPCOM компонента на С++ в страницу динамически добавить переменные и вызовы функций. При разработке для IE пользовался execScript (из С++). Для Firefox такого не нашел, только eval(). Но последний метод вызывается только из JavaScript (?)... :(
В общем, прошу помощи.
СУВ, Kuvaldis
Elexander сиба, буду пробовать.
P.S. Сорри, что сразу не ответил
Всем привет. Пришел в разработку тулбара для Лиса после IE. Разрабатываю XPCOM компонент. Мне нужно отслеживать загрузку каждой вкладки. Возникли следующие проблемы:
В IE на каждую вкладку создается поток (т.е. каждая вкладка - это отдельный браузер со своим НЕЗАВИСИМЫМ тулбаром). Соответствующим образом построена и работа - подписка на сообщения о загрузке, обработка функций окон тулбаров.
Кроме того, в DLL (BHO) существуют глобальные объекты, которые могут разделяться этими экземплярами тулбаров.
Но я не понимаю, как такое сделать для Лиса. Не ясно, как и где создать XPCOM объекты, подписаться на события ТОЛЬКО одной вкладки (динамически). Т.е. речь идет о nsIWebProgressListener. Т.е. мне нужен handler для событий в контексте и потоке окна закладки (НЕ браузера).
Если объект создавать в JS из XUL, то он создается один на браузер. :(
Буду рад помощи.
СУВ, Kuvaldis
Спасибо :)
Объясните, пожалуйста, как idl-файл с содержимым:
корректно пропустить через xpidl. Я, как описано, скачал Gecko SDK (версия 1.8.*), но nsIAccessibleDocument.idl файла не нашел.
ОЧЕНЬ ПРОШУ ПОМОЩИ!
СУВ, Kuvaldis
Страницы: 1