好吧基本上我想在一个页面上有一些javascript,以某种方式附加某种全局事件监听器,如果发出ajax请求可以检测并执行某些操作(无需直接从调用中调用它),无论ajax如何打电话.
我想出了如何用jquery做这个 - 如果ajax请求是由 jquery 完成的.这是一个示例代码:
$.post(
// requested script
'someScript.php',
// data to send
{
'foo' : 'bar',
'a' : 'b'
},
// receive response
function(response){
// do something
}
); // .post
// global event listener
$(document).ajaxSend(
function(event,request,settings){
alert(settings.url); // output: "someScript.php"
alert(settings.data); // output: "foo=bar&a=b"
}
);
Run Code Online (Sandbox Code Playgroud)
使用此代码,无论我在何处/如何调用$ .post(..),全局事件侦听器都将触发.如果我使用$ .get或$ .ajax(任何jquery ajax方法),它也可以工作,无论我如何/何时调用它(作为onclick附加,在页面加载,无论如何).
但是,我希望能够扩展此侦听器以触发,无论使用什么js框架,或者即使没有使用框架.因此,例如,如果我也有一个页面上下面的代码(从W3Schools的通用Ajax代码):
function loadXMLDoc()
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code …Run Code Online (Sandbox Code Playgroud)