到目前为止,我发现了如何在Chrome DOMSubtreeModified
事件中执行此操作:
Is there a JavaScript/jQuery DOM change listener?
显然它也适用于Firefox和IE 9。
您是否知道在Opera等其他浏览器中检测DOM更改的解决方案?也许是IE版本的旧版本,因为我确定上面的事件在IE 6-7-8中不起作用......
或者你知道我可以使用的其他事件吗? 我基本上正在寻找一种方法来检测是否已经通过ajax请求在文档中插入了某些元素......
答案 0 :(得分:3)
Opera支持DOMNodeInserted
和DOMNodeRemoved
突变事件。我测试过,他们也在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);
}