2011-01-16 7 views
0

Greasemonkeyを使用して「google.com/*」で実行される小さなスクリプト
基本的に私のスクリプトは、Googleメニュー地図ニュースショッピングなど...);greasemonkeyスクリプトgreasemonkeyを使用して要素が存在し、nullになる前に要素にアクセスしよう

このメニューはqbar divの内側にあるので、のようなその表情:

<div id="gbar"> ...menu code ... </div> 

は、GoogleのWebページ(www.google.com)に行けば、私のスクリプトの次の行が正常に動作します:

var gbar = var gbar = document.getElementById("gbar"); 
if (qbar != null) alert("qbar exist!"); 
else alert("qbar is null"); 

このコードアラートqbarは存在しています。

今私は「狂人」するための例の検索は、Googleでanywordを探している場合は、このページにあなたを取得します:

http://www.google.com/#sclient=psy&hl=en&q=madman&aq=f&aqi=g5&aql=&oq=&pbx=1&fp=fd0f73886609171d

今スクリプトはまだそれが「gbarがnullの」警告のみ今実行している

私は、gbar要素がページ上に作成される前にスクリプトが実行されていると考えます。私はグリースサルのスクリプトがすべてのコンテンツの読み込みが終了したときにのみ実行されることを確信していました。

+0

私は誤植があると仮定し、qbarとgbarは同じオブジェクトですか? – harvest316

答えて

4

DOM mutation eventを設定できます。基本的には、ここでの手順は次のとおりです。

  • は、初期検索document.getElementById('gbar')を行い、見つかった場合は、それを処理します。

  • ドキュメント上にDOMNodeInsertedイベントハンドラを設定します。

    • 挿入された要素にid="gbar"がある場合、gbarが挿入されていることがわかります。
    • そうでない場合は、挿入された要素内で、id="gbar"の要素を検索し、見つかった場合は処理します。

あなたはworking exampleコードを見ることができます。ドキュメントにgbarが追加されると、5つの叫びマークが追加されます。

関連する問題