3

Add-on SDK を使用して Firefox 拡張機能を作成しています。コンテンツ スクリプトからサイトを正常にスキャンしました。ただし、URLを変更すると

window.location.href = "http://www.thatsite.com/foo.php";
alert($('#abc');

新しい DOM にアクセスできません。サイトが完全に読み取られる前にアラートが表示されます。試してみ$(document).ready(function()ましたが、これは1回しか機能しないようです...

サイトが完全に構築されるまでどのように待つことができますか?

4

2 に答える 2

3

コンテンツスクリプトは、ページが読み込まれている間のみ有効です。別のページに移動すると、このコンテンツスクリプトインスタンスがアンロードされます。コンテンツスクリプトの別のインスタンスが新しいページに読み込まれますが、そこで必要なことはすべて実行できます。唯一の問題は、古いインスタンスから新しいインスタンスにデータを渡すことです。を使用してデータをアドオンに送信してから、アドオンにハンドラーpostMessage()の新しいコンテンツスクリプトにデータを送信させることができます。onAttach()これがあなたの場合の可能性であるかどうかは、あなたが達成しようとしていることによって異なります(あなたは質問でそれを言わなかった)。

于 2011-10-11T20:09:39.803 に答える
1

場所を変更してタブを操作する場合は、JS をより高いレベルに移動する必要があります。参照: MDC ドキュメント. このままでは、現在のページのコンテキスト内で JS が 1 回適用されます。新しいページが読み込まれると、事実上存在しなくなります。

とにかく、アドオンからそのようなページと対話するべきではありません。これは、Firefox の拡張機能ではなく、Greasemonkey ユーザースクリプトに似た動作です。

于 2011-10-11T14:55:14.277 に答える