Opera的DOM更改事件

时间:2012-01-23 01:03:43

标签: javascript jquery dom javascript-events opera

到目前为止,我发现了如何在Chrome DOMSubtreeModified事件中执行此操作: Is there a JavaScript/jQuery DOM change listener?

显然它也适用于Firefox和IE 9。

您是否知道在Opera等其他浏览器中检测DOM更改的解决方案?也许是IE版本的旧版本,因为我确定上面的事件在IE 6-7-8中不起作用......

或者你知道我可以使用的其他事件吗? 我基本上正在寻找一种方法来检测是否已经通过ajax请求在文档中插入了某些元素......

2 个答案:

答案 0 :(得分:3)

Opera支持DOMNodeInsertedDOMNodeRemoved突变事件。我测试过,他们也在Firefox和G. Chrome上工作。

$(document).bind("DOMNodeInserted, DOMNodeRemoved", function() {
    alert("DOM changed");
});

如果您的目标是多个浏览器,也许您可​​以检查Mordenizr是否有对DOM突变事件支持的任何检测,它可以帮助您简化这些决策。

答案 1 :(得分:1)

onreadystatechange将在IE8及以下版本中使用。必须通过htc将DHTML行为附加到元素,但htc文件不必存在:

if (!!document.addEventListener)
  {
  $(document.documentElement).get(0).addEventListener("DOMNodeInserted", bar, false);
  }
else
  {
  $(document.documentElement).get(0).addBehavior("foo.htc");
  $(document.documentElement).get(0).attachEvent("onreadystatechange", bar);
  }