是否有可能为ajax请求设置全局事件处理程序,并在任何ajax请求返回时自动调用?如何在javascript中捕获所有ajax请求?
我对此感兴趣,因为我正在为ajax网站制作一个greasemonkey脚本。在之前的脚本中,我每隔几秒就会运行一次主函数,或者重写网站的JavaScript部分,这两件事情都很麻烦。
是否有可能为ajax请求设置全局事件处理程序,并在任何ajax请求返回时自动调用?如何在javascript中捕获所有ajax请求?
我对此感兴趣,因为我正在为ajax网站制作一个greasemonkey脚本。在之前的脚本中,我每隔几秒就会运行一次主函数,或者重写网站的JavaScript部分,这两件事情都很麻烦。
不符合常规的XMLHttpRequest。一些像jQuery这样的库为此提供了包装器(例如ajaxComplete)。它们只会针对也使用包装器的ajax请求进行引发(例如jQuery.ajax)。
使用jQuery我这样做。
$(document).ready(function() {
$("#contentLoading").hide();
$("#contentLoading").ajaxSend(function(r,s){
$(this).show();
$("#ready").hide();
});
$("#contentLoading").ajaxStop(function(r,s){
$(this).hide();
$("#ready").show();
});
而不是隐藏和显示的东西,你可以运行一个通用的功能。