观察特定DIV的内容

时间:2010-10-16 14:21:19

标签: javascript javascript-events

有没有办法观察特定DIV的内容,我想在DIV的内容被更改后立即调用函数。

这可以是innerHTML替换,页面加载。

由于

3 个答案:

答案 0 :(得分:2)

在现代浏览器中,您可以使用 DOM突变事件,例如DOMSubtreeModifiedDOMCharacterDataModified。在IE中,您可以使用onchange事件。对于所有其他浏览器,您可以设置计时器以检查内容是否已更改。

答案 1 :(得分: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 :(得分:0)

this page中,它表示DIV应在其内容被修改时触发OnChange。

观察div变化不是一种有效的技术。您是否考虑过将更改DIV内容的代码设置为触发和事件?

或者,您可以设置一个计时器来监视div中的更改并触发某些事件。