2011-06-09 20 views
2

我有這個爲某些網站寫的greasemonkey/user.js腳本。該網站有一個表格,它不時輸出信息;它是通過添加一個新的信息表。是否可以將EventListener添加到表中以檢查該表中的新信息?

此刻我只是檢查定時循環,如果有新的東西在那裏。但我能做到這一點嗎?我可以添加一個偵聽器,只要有信息的新表格行出現,就會觸發該偵聽器?如果是的話如何?

編輯:表我想檢查只包含錶行。每次提供新信息時,都會添加一個新行,其中包含一些文本。該表似乎有一個最大長度。所以如果它是一個完整的表格,最古老的tr被刪除。把它看作一個聊天箱,它非常相似。

我當前的定時循環檢查表中未標記的錶行,從中獲取信息並標記它們。所以它只檢查未標記的。

和例如那些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> 
+0

編輯的問題。希望更清楚。 – 2011-06-09 14:55:29

回答

2

Mutation Events,也許你可以使用DOMNodeInserted事件作爲有插入新行。

+0

你可能會舉一個如何做到這一點的例子? – 2011-06-09 18:27:41

2

@ wong2良好的通話。這適用於我(在IE9以外的用戶腳本)在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); 
} 
+0

您不需要attachEvent分支,因爲所有支持DOMNodeInserted的瀏覽器也都支持addEventListener。 – duri 2011-06-09 15:36:40

+0

我得到了這個錯誤:myTable.attachEvent不是FF4中的函數 。 – 2011-06-09 15:43:34

+0

每個@duri更新示例 – psema4 2011-06-09 16:04:20

相關問題