2

私はこのグリースモンキー/user.jsスクリプトをいくつかのWebサイト用に書いています。その Web サイトには、時々情報を出力するテーブルがあります。これは、情報を含む新しいテーブル行を追加することによって行われます。

現時点では、そこに何か新しいものがあるかどうか、タイムループをチェックインするだけです. しかし、私はこれを別の方法で行うことができますか?情報を含む新しいテーブル行が表示されるたびに起動するリスナーを追加できますか? もしそうならどのように?

EDIT:チェックしたいテーブルは、テーブル行のみで構成されています。新しい情報が表示されるたびに、新しい行が追加され、その中にテキストが含まれます。テーブルには最大長があるようです。したがって、テーブルがいっぱいの場合、最も古い tr が削除されます。チャットボックスと考えてください。かなり似ています。

私の現在のタイミングループは、そのテーブルのタグなしのテーブル行をチェックし、それらから情報を取得してタグを付けます。タグの付いていないものだけをチェックします。

これらのテーブル行の 1 つの例:

<tr class="tagged">
  <td align="left" style="vertical-align: top;">
    <div class="someClass" style="width: 100%;">
      some info i'm interested in
    </div>
  </td>
</tr>
4

2 に答える 2

2

Mutation Eventsがあります。新しい行が挿入されるので、おそらくDOMNodeInsertedイベントを使用できます。

于 2011-06-09T15:02:42.857 に答える
2

@wong2 良い電話。これは、IE9、FF4、Chrome 6で(ユーザースクリプトの外で)機能します:

myTable = document.getElementsByTagName('table')[0];

if (document.implementation.hasFeature('MutationEvents','2.0')
    || window.MutationEvent) {

    myTable.addEventListener('DOMNodeInserted', function(e) {
        console.log('data added');
    }, false);
}
于 2011-06-09T15:29:25.117 に答える