2010-10-16 47 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事件。对于所有其他浏览器,您可以设置一个定时器来检查内容是否已更改。