1

シーケンス項目をプリロードし、前処理し、要求に応じて表示することで、ページ シーケンスの閲覧を高速化する Firefox 拡張機能を作成しようとしています。

特権拡張コードからバックグラウンドで任意の Web ページ (現在開いているサイトと同じサイト) の DOM を読み込んで処理する方法はありますか?

理想的には、ドキュメントの JavaScript が通常のブラウザ ウィンドウと同じように機能する必要があります。これには隠しウィンドウが必要になると思います。その JavaScript のコンテキストに特権を与えるべきではありません。ロードすると、ユーザーは表示されているすべてのブラウザ ウィンドウで通常のブラウジングを続行できるようになります。

現在開いているドキュメントに iframe を挿入し、必要に応じて表示できるようにするというアイデアは好きではありません ( Webcomic リーダー userscriptで使用される原則) 。

4

3 に答える 3

2

アドオン SDK から、page-workerモジュールは必要なものに近い可能性があります。

page-worker モジュールは、永続的な非表示ページを作成し、その DOM にアクセスする方法を提供します。

そうは言っても、その非表示のページを(現在または新しい)タブ/ウィンドウにロードできるかどうかはわかりません。現在のタブをページ ワーカーのタブに置き換えることできる場合があります。document.bodyおそらく。合法なら。

于 2012-06-30T08:21:23.497 に答える
0

軽量のブラウザー拡張機能を使用して、ページのオンロードですべてのリンクを収集し、リンク タグを使用してそれぞれのコンテンツをプリフェッチすることができます。ブラウザーはこれらのページをバックグラウンドでロードします: https://developer.mozilla.org/en/Link_prefetching_FAQ

また

ページをプリロードする必要があり、拡張ランドからその DOM にアクセスできる場合は、アドオン SDK のページ ワーカー API を使用できます: https://addons.mozilla.org/en-US/developers/docs/sdk /1.0/packages/addon-kit/docs/page-worker.html

于 2012-07-06T17:13:23.907 に答える
-1

そう信じる。JavaScriptがすでに実行されていると仮定して

var doc = gBrowser.selectedBrowser.contentDocument;

ロードされたタブのドキュメントを取得すると、それを処理して、必要なことを行うことができます。バックグラウンドで実行し、アプリの応答性を維持することは別の話です:)

于 2012-06-27T01:41:44.373 に答える