是否可以将addEventListener添加到表中以检查该表中的新信息?

时间:2011-06-09 13:27:03

标签: javascript userscripts

我为某些网站编写了这个greasemonkey / user.js脚本。该网站有一个表,不时输出信息;它通过添加一个包含信息的新tablerow来实现。

目前我只是检查一个定时循环,如果那里有新的东西。但我可以这样做吗?我可以添加一个监听器,只要出现带有信息的新表行,它就会触发吗?如果是这样的话?

编辑:我要检查的表只包含表行。每次出现新信息时,都会添加一个新行,其中包含一些文本。该表似乎有一个最大长度。所以,如果它是一个完整的表,则删除最旧的tr。把它想象成一个聊天盒,它非常相似。

我当前的定时循环检查该表中未标记的表行,从中获取信息并标记它们。所以它只检查未标记的。

以及其中一个表格的示例:

<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>

2 个答案:

答案 0 :(得分:2)

Mutation Events,也许您可​​以使用DOMNodeInserted事件,因为已插入新行。

答案 1 :(得分: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);
}