我为某些网站编写了这个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>
答案 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);
}