2010-10-16 94 views
1

有沒有辦法觀察特定DIV的內容,我想在DIV內容被更改後立即調用函數。觀察特定DIV的內容

這可以是一個innerHTML替換,一個頁面加載。

感謝

回答

0

this page,它說的DIV應該發出onChange當他們的內容被修改。

觀察改變的div並不是一種有效的技術。你有沒有想過獲取改變DIV內容的代碼來觸發和事件?

或者,您可以設置一個計時器來監視您的div中的更改並觸發某些事件。

+0

-1'onchange'區分大小寫,並且不是跨瀏覽器 – galambalazs 2010-10-16 15:21:12

1

您可以檢查元素的內容與以前的值比較。

檢索要素看

var div = document.getElementById("w"); 

創建一個觀察者:

var w1 = { watch: null, prev: div.innerHTML }; 

開始觀察者。每100ms它將比較以前的值和當前值,如果不同,它會更新值並觸發任何操作。

function Watch(w, e) 
{ 
    w.watch = setInterval(function() { 
     if (e.innerHTML != w.prev) 
     { 
      w.prev = e.innerHTML; 
      alert("changed"); 
     } 
    }, 100); 
} 

Watch(w1, div); 

See this example on jsFiddle.

2

在現代瀏覽器中,你可以使用DOM突變事件DOMSubtreeModifiedDOMCharacterDataModified。在IE中,您可以使用onchange事件。對於所有其他瀏覽器,您可以設置一個定時器來檢查內容是否已更改。