2010-05-02 77 views
4

是否有可能为ajax请求设置全局事件处理程序,并在任何ajax请求返回时自动调用?如何在javascript中捕获所有ajax请求?

我对此感兴趣,因为我正在为ajax网站制作一个greasemonkey脚本。在之前的脚本中,我每隔几秒就会运行一次主函数,或者重写网站的JavaScript部分,这两件事情都很麻烦。

回答

2

不符合常规的XMLHttpRequest。一些像jQuery这样的库为此提供了包装器(例如ajaxComplete)。它们只会针对也使用包装器的ajax请求进行引发(例如jQuery.ajax)。

0

使用jQuery我这样做。

$(document).ready(function() { 
    $("#contentLoading").hide(); 

    $("#contentLoading").ajaxSend(function(r,s){ 
     $(this).show(); 
     $("#ready").hide(); 
    }); 

    $("#contentLoading").ajaxStop(function(r,s){ 
     $(this).hide(); 
     $("#ready").show(); 
    }); 

而不是隐藏和显示的东西,你可以运行一个通用的功能。