变化包括:节点添加、修改(样式、文本改变)、移除。<html>
<body>
<script>
setInterval(function() {
var div = document.createElement("div");
div.innerHTML = +new Date;
document.body.appendChild(div);
}, 5000);/* TODO */
</script>
</body>
</html>难道只能用计时器+遍历?一周后没有答案放到非技术区散分结贴。
谢谢关注。

解决方案 »

  1.   

    遍历 倒没的必要把dom 字符串放到一个变量中
    求他的md5值定时去看
    如果改变了 就说明dom改变了不知道可行不?
      

  2.   


    想了哈 似乎上面的做法 不行 囧
    dom是对象不行 囧
      

  3.   

    人工制造事件模型。
    创造一个MyEvent对象,用来存储所有自定义事件函数
    格式像这样 MyEvent[dom元素的sid属性][事件名称如onappend]=[]这个数组里存入用自定义的addMyEvent函数添加的函数。
    然后dom同addMyEvent添加事件的时候,如果有sid则直接添加事件,如果没有sid则sid = 某全局变量++,然后添加事件。
    之后写一个addChild()函数,代替appendChild函数,同时执行MyEvent里面存储的函数。
    虽说工作量大一些。。其实也不大。。
      

  4.   

    上面的方法借鉴自jquery自定义事件..
      

  5.   

    也想知道这个问题啊,js遍历监听数量也不是个办法吧,假如替换一个节点应该就出不来了吧如果只是appendChild或removeChild应该可以重新这个方法制造事件,可是innerHTML这玩意就拿他没办法了啊
      

  6.   


    innerHTML, innerText, css等都独立成方法应该是可以的啊, jquery中的css(), html(), text()这几个方法中增加事件, 程序都按照规范来开发, 我觉得应该可以满足的啊
      

  7.   

    http://img.myaspx.com/Images_Myaspx_CSDN/2011021207261019908.jpg
      

  8.   

    能控制所有源代码的话,设置全局标识,在改变dom结构的操作之后改变标识?
    愚见。愚见。
      

  9.   

    在firebug的 HTML页里,对一个dom点右键可以
    break on attribute change
    break on Child add/remove
    break on element remove
    这三个断点貌似包含了所有需求吧,可以把firebug解包看一下,里面都是js,说不定会有帮助
      

  10.   

    dom 变化 是浏览器解释器自身控制的结构
    只能通过模拟检控 
      

  11.   

    W3C - MutationEvent
    应用实例 FireBug 的插件 FireDiff
      

  12.   

    遇到了同样的问题,不知楼主有答案了没;计时器+遍历 不行吧,除非把原来的DOM也保存下来,定时和新的DOM比较,才知道变没变。