2

次のような空のスパンをロードするページがあり<span id="bla"></span>、後でそのスパンにテキストを入力します。

そのテキストを取得するにはスクリプトが必要ですが、テキストが入力される前に Greasemonkey が実行されwaitForKeyElements、ページが読み込まれたときに要素が既に存在するため、使用しようとした関数でさえ役に立ちません。

多分私は別の方法で必要ですか?現在私はやっています:

waitForKeyElements ("#bla", get_span_content)
4

1 に答える 1

2

既にwaitForKeyElementsを使用しているため、アクション関数の戻り値を使用して結果を微調整します。スパンが1 回だけ入力/変更される場合、コードは次のようになります。

 waitForKeyElements ("#bla", get_span_content);

 function get_span_content (jNode) {
     var spanText   = $.trim (jNode.text () );

     if (spanText == "") {
        //-- Still blank; tell waitForKeyElements to keep looking.
        return true;
     }
     else {
        //  DO WHATEVER WITH spanText HERE.
     }
}



同じスパンが複数回変更された場合、コードは次のようになります。

 waitForKeyElements ("#bla", get_span_content);

 function get_span_content (jNode) {
     var spanText   = $.trim (jNode.text () );
     var lastText   = jNode.data ("lastText")  ||  "";

     if (spanText != lastText) {
         //  DO WHATEVER WITH spanText HERE.

         jNode.data ("lastText", spanText);
     }

     return true;
}
于 2013-04-23T12:20:56.200 に答える