2011-07-12 10 views
0

Google Chromeの拡張機能を単純にしようとしています。ページ上の特定の要素を見つけてアラートを表示するようにしています。Google Chrome拡張機能でDOM要素を確認してください

私の問題は、特定のページが比較的遅く読み込まれていることです(いくつかのAJAXが背後にある)。

すべてのページが読み込まれたときにのみチェックを行う方法はありますか?

マニフェストファイルで"run_at" : "document_idle"を試しましたが、成功しませんでした。ページ全体が読み込まれる前に、メッセージが表示されます。

DOM要素全体を1秒おきにチェックすることを考えていましたが、これは実現可能な解決策ですか?私はそれがページを遅くすると思う...

ありがとう。

答えて

1

あなたは「ソースの表示」をクリックすると、その要素は、それをキャッチする一つの方法は、DOMが変更されるたびに発射DOMSubtreeModifiedイベント、に耳を傾けられる、ページ上に存在しない場合は、次の

document.addEventListener("DOMSubtreeModified", function(event){ 
     if(document.getElementById("my_element")) { 
       //element is added 
     } 
}); 
+0

情報ありがとうございます。私のページはAJAXを使って多くの要素を読み込みます。これは本当に私のページを遅くしています。追加された各要素に対して、スクリプトが実行されます。これを制限することはできますが、要素(div、textフィールド、...)を追加するときだけです。 – CristiC

+0

@Parkyprg 'DOMNodeInserted'イベントもあります。しかし、なぜこれがページを遅くするのか分かりません。このイベントハンドラー内でスクリプトを実行しないでください。要素がすでにページにあるかどうかを確認してください。そうであれば、あなたはあなたのスクリプトを一度実行します(いくつかのフラグなどがあります)。 – serg

1

"content_script.js"のwindow.onloadイベントにコードを挿入しようとしましたか?

window.onload = function() { 
    // your code 
}; 
+0

はい:http://stackoverflow.com/questions/3698200/window-onload-vs-document-ready – Darin

+1

これは動作しません。これは、ウィンドウがロードされたときに発生しますが、すべての要素がAJAXで更新される前に発生します。 – CristiC

関連する問題