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

发布于 2024-11-14 19:56:48 字数 569 浏览 1 评论 0 原文

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

目前我只是检查定时循环中是否有新内容。但我可以做不同的事情吗?我可以添加一个监听器,每当出现带有信息的新表行时就会触发该监听器吗?如果是这样怎么办?

编辑:我想检查的表仅包含表行。每次显示新信息时,都会添加一个新行,其中包含一些文本。该表似乎有最大长度。因此,如果它是一个完整的表,最旧的 tr 将被删除。把它想象成一个聊天框,它非常相似。

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

以及这些表行之一的示例:


  
    
我感兴趣的一些信息

i have this greasemonkey/user.js script written for some website. that website has a table which outputs info every now and then; it does so by adding a new tablerow with the info.

at the moment i just check in a timed loop if there is something new in there. But can i do this different? could i add a listener that will fire whenever a new table row with info appears? if so how?

EDIT: the table i wanna check on consists of only table rows. each time new info is presented a new row is added with some text inside it. the table seems to have a maximum length. so if it's a full table the oldest tr is removed. Think of it as a chatbox, it's quite similar.

my current timed loop checks for untagged table rows in that table, gets the info out of them and tags them. so it checks only untagged ones.

and example of one of those tablerows:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

披肩女神 2024-11-21 19:56:49

Mutation Events,也许你可以使用 <有新行时出现 href="http://www.w3.org/TR/DOM-Level-3-Events/#event-type-DOMNodeInserted" rel="nofollow">DOMNodeInserted 事件插入。

There is Mutation Events, maybe you can use DOMNodeInserted event as there's new rows inserted.

行至春深 2024-11-21 19:56:49

@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);
}

@wong2 Good call. This works for me (outside of a userscript) in 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);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文