0

私はFirefoxアドオンの開発に不慣れで、モバイルデバイスでの表示により適したページコンテンツを最適化するFirefoxMobileアドオンを作成することを計画しています。

ページ読み込みイベントをインターセプトするアドオンを作成する方法を研究しました...

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

...そしてこれはこれまでのところ非常に簡単です。

ただし、通常のHTMLロードチェーンの外部でロード/表示されるHTMLコンテンツも操作したいと思います。これは、つまり、GoogleリーダーがAJAXを使用してフェッチするGoogleリーダーのコンテンツになります。

Firefoxは、innerHTMLなどを介してページに挿入されたコンテンツを後処理するためのフックを提供しますか?また、別の方法として、クリック/タッチイベントをキャプチャし、各イベントの後に処理を再実行することを考えていました。Googleリーダーで記事をクリックすると、記事のコンテンツを含む新しいビューが開きます。

他のアドオンは一般的にこれをどのように行いますか?

4

1 に答える 1

1

MDC の XUL スクールと XUL チュートリアル コンテンツは、XUL を使用してユーザー インターフェイスを構築する方法を理解するのに役立ちます。MDC コード スニペット セクションには、アドオン開発者が使用できる API の一部を示すコード サンプルがあります。

注意すべきことの 1 つは、Firefox Mobile がマルチプロセス アプリケーションであることです。UI はメイン プロセスにあり、Web コンテンツ (タブ) はすべて 2 番目の子プロセスにあります。これは、シングル プロセス アプリケーションである Firefox デスクトップとは異なります。

マルチプロセス アドオンの作成方法についていくつかのメモがあり [1]、参考になるビデオ チュートリアルもいくつか作成しました [2]。

Firefox Mobile で Web コンテンツを操作するには、子プロセスで実行されるスクリプトを作成する必要があります。スクリプトは、Web ページの DOM ウィンドウと DOM ドキュメントに直接アクセスできます。アドオンに UI がある場合、メッセージを使用して 2 つのプロセス間で通信します。リンク [1] と [2] は、DOM の相互作用とメッセージの送信の両方を行う方法の詳細を提供します。

ロード後のコンテンツ インジェクションをリッスンするのは注意が必要です。通常の Web ページが使用する以上の追加のフックはありません。ポーリング (setInterval を使用して変更をチェック) を使用するか、DOM ミューテーション イベント (パフォーマンスに悪い) をリッスンすることができます。

Firefox Mobile 開発者は #mobile チャンネルで Mozilla の IRC にたむろします。

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

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

于 2011-04-16T20:40:21.303 に答える