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

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

Разработка » Как отловить событие изменения адресса. » 21-11-2008 15:48:43

Спасибо за ссылку, помогло. :)

Shutnik пишет
StepanM пишет

а то load приходит несколько раз на одну вкладку

не должно такого быть, там наверное фреймы есть. их надо фильтровать

Ошибка была в том, что я коннектился к "content" элементу - это tabbrowser, а нужно было, как ты правильно говорил в самом начале, к "appcontent". Теперь можно отслеживать, какому документу соответствуют события DOMContentLoaded и unload: соответствующий eventTarget кастится к nsIDOMHTMLDocument. Замечено, что на каждый документ приходит всегда ровно один DOMContentLoaded и unload. Для каждого дополнительного фрейма будет дополнительно еще одно событие DOMContentLoaded (unload).

Осталось научиться загружать страничку в новой вкладке из C++. Может, есть у кого-нибудь наработки? Не могу найти даже способ получить window.getBrowser() из C++.:/

Разработка » Как в расширении понять, что его запустили первый раз? » 21-11-2008 10:02:54

Shutnik в обсуждении темы про отлов события загрузки документов во всех табах кинул ссылку:
https://developer.mozilla.org/En/Code_s … _page_load
Там в самом низу есть пример кода, позволяющего определять, запущено ли расширение первый раз. Видимо, ключевым здесь является объект http://www.xulplanet.com/references/xpc … nces1.html, позволяющий с помощью интерфейса IPrefBranch настраивать окружение.

Разработка » Как отловить событие изменения адресса. » 20-11-2008 16:39:15

Спасибо вам всем. Очень полезная оказалась информация. В частности, получилось подключиться к событиям таббраузера с помощью C++ в xpcom-компоненте.
Хочется отлавливать еще и другие события - появление новой вкладки за одно сообщение, а то load приходит несколько раз на одну вкладку :( Кто-нибудь знает, где посмотреть какие события могут быть у элемента? Стандартный список на xulplanet выглядит неполным.

И еще вопрос: какие интерфейсы реализует tabBrowser? Хочется создавать новую вкладку и загружать в ней новый html по uri прямо из C++ компонента. Как это можно сделать?

lemax пишет

Спасибо.
Я только поменял "appcontent" на "content" (tabbrowser)

Выделить код

Код:

function NewSite (event)
{
  ...
}

document.getElementById("content").addEventListener("select", NewSite, true);
document.getElementById("content").addEventListener("load", NewSite, true);

Разработка » Перевод расширения на Gecko 1.9 » 23-10-2008 18:10:02

Уважаемый Яковчук!

Удалось ли таким образом решить проблему в nsAString::BeginReading?
У меня не решается. Сравнил заголовочные файлы для работы со строками в версиях 1.9.0.3 и 1.8.0.4. Выяснил, что раньше BeginReading была inline :). Скопировал реализацию в новую версию nsStringAPI.h и все собралось и даже правильно работает. Но что-то мне подсказывает, что это нечестный способ.

Кстати для работы всего остального достаточно двух макросов XP_WIN и XP_WIN32, а также только трех lib'ок (nspr4, xpcom, xpcomglue_s). Ну это для того, чтобы разрешить все Ваши unresolved ссылки (может, кроме nsHandyPassword - про него ничего не знаю).

Board footer

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