Дополнения Firefox и события изменения содержимого страницы HTML (Google Reader) - PullRequest
0 голосов
/ 16 апреля 2011

Я новичок в разработке дополнений для Firefox и планирую написать дополнение для Firefox Mobile, которое оптимизировало бы некоторый контент страницы, чтобы больше подходить для просмотра на мобильных устройствах.

Я изучил, как создать дополнение, которое перехватывает события загрузки страницы ...

https://developer.mozilla.org/en/XUL_School/Intercepting_Page_Loads

... и это довольно просто для этого далеко.

Однако я бы также хотел взаимодействовать с HTML-контентом, который загружается / отображается вне обычной цепочки загрузки HTML. Это будет контент Google Reader, который Google Reader извлекает с помощью AJAX.

Предоставляет ли Firefox какие-либо хуки для постобработки контента, внедренного в страницы через innerHTML и т.п.? Кроме того, в качестве альтернативы я думал о том, чтобы захватывать события нажатия и касания и перезапускать обработку после каждого события: когда вы щелкаете статью в Google Reader, она открывает новое представление с содержанием статьи.

Как другие надстройки обычно делают это?

1 Ответ

1 голос
/ 17 апреля 2011

Содержание XUL School и XUL Tutorial на MDC поможет вам понять, как использовать XUL для создания пользовательских интерфейсов.В разделе фрагментов кода MDC приведены примеры кода, показывающие некоторые API-интерфейсы, доступные для разработчиков надстроек.

Одна вещь, на которую следует обратить внимание, - это то, что Firefox Mobile является многопроцессорным приложением: пользовательский интерфейс находится в основном процессе ивеб-контент (вкладки) - все это дочерний процесс.Это отличается от Firefox Desktop, который является приложением с одним процессом.

У нас есть несколько заметок о том, как создавать многопроцессорные надстройки [1], и я также сделал несколько видеоуроков [2], чтобы помочь.

Взаимодействие с веб-контентом в Firefox Mobile означает, что вам нужно создать скрипт, который запускается в дочернем процессе.Скрипт имеет прямой доступ к окну DOM веб-страницы и документу DOM.Если в вашем дополнении есть пользовательский интерфейс, вы будете использовать сообщения для связи между двумя процессами.Ссылки [1] и [2] содержат подробные сведения о том, как взаимодействовать с DOM и отправлять сообщения.

Слушать прослушивание содержимого после загрузки сложно.У вас нет никаких дополнительных хуков, кроме тех, которые использует обычная веб-страница.Вы можете использовать опрос (проверить изменения с помощью setInterval) или прослушивать события мутации DOM (которые негативно влияют на производительность).

Застройка разработчиков Firefox Mobile на IRC Mozilla в канале #mobile.

[1] https://wiki.mozilla.org/Mobile/Fennec/Extensions/Electrolysis

[2] http://people.mozilla.com/~mfinkle/tutorials/

...