Moj*_*jah 6 javascript firefox-addon dom-events
我正在编写一个Mozilla Firefox扩展程序(Javascript没有BS必须确定它是IE还是Firefox),我发现自己陷入了以下情况.在页面加载时,我添加如下事件监听器:
extension.addEventListener("DOMContentLoaded", extension.onPageLoad, true);
一旦加载DOM,这将执行m"onPageLoad()"方法,这意味着接收所有数据.这是有效的,但我需要找到一种方法来为DOM 更改时添加一个监听器.扩展应该读取appbrowser窗口中的所有数据,即使通过AJAX调用更新(即:twitter,facebook).
我查看了DOMSubtreeModified事件,但是在初始DOMContentLoaded事件触发后动态添加内容时,这似乎不起作用.
有人曾经克服过这个问题吗?
我的另一种选择(上帝原谅我)是继续使用2秒的超时()来触发相同的函数,重新读取DOM并解析它,但我更愿意只在实际改变时才这样做.
DOMSubtreeModified确实有效并且已经得到了相当好的支持(Firefox和WebKit多年来一直支持它,IE仅在版本9中支持,Opera显然仍然没有支持它).关于是否DOMContentLoaded已经开除没有限制,所以我建议你的测试是有缺陷的.请看这里的例子:http://jsfiddle.net/timdown/GB6Rz/
其他DOM突变事件,如DOMNodeInserted更好的支持(虽然仍然不在IE <9),所以我建议尽可能使用那些.
听起来您正在寻找DOM Mutation Events。虽然DOMSubtreeModified在WikiPedia 页面上列出,但我在 MDC 页面上没有看到它。最好的办法是聆听三个 MDC 事件,看看它们是否满足您的需要。