我尝试寻找答案,这是我的第一篇文章,所以如果我在某些方面搞砸了,请耐心等待。
基本上我的问题是这样的:我正在为使用 jQuery 的 Chrome 编写一个扩展。我有另一个扩展,每 10 秒发出一次定时 $.ajax() 请求。我需要找到一种方法来在每次定时 ajax 请求及其回调函数完成时运行我的代码。为我自己的脚本设置一个计时器是可以完成的,尽管这是相当半途而废的并且效果不佳。
问题可以这样说明:
//extension 1
function timedFunc() {
setTimeout(doStuff, 10000);
};
timedFunc();
//extension 2
//code to be run every time doStuff completes
我觉得这个问题可能有一个非常基本的解决方案,但我很感谢您的帮助。
最佳答案
有一个名为 DOMSubtreeModified
的事件。
但它已被弃用,因此目前实际上只有可用的解决方法。
Why is the DOMSubtreeModified event deprecated in DOM level 3?
我无法建议使用此事件,因为它尚未在所有浏览器中实现。
但是您可以(轻松)做的只是通过所有 ajax 调用触发您自己的事件!
示例:
当(任何)ajax 调用完成时触发事件:
$(document).ajaxComplete(function() {
$(document).trigger('domChanged');
}
并听一下:
$(document).on('domChanged',function() {
alert("i changed the DOM tree!");
});
顺便说一句:
假设您只想对正在完成的 ajax 调用使用react...只需使用 .ajaxComplete() 事件:
关于javascript - 文档更改时运行js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12443253/