栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在页面上的所有AJAX请求中添加一个“hook”

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在页面上的所有AJAX请求中添加一个“hook”

我不确定 脚本中的注释 是否有用 ,当然 仅适用于使用本机XMLHttpRequest对象的浏览器
我认为如果正在使用javascript库,它将起作用,因为如果可能的话,它们将使用本机对象。

function addXMLRequestCallback(callback){    var oldSend, i;    if( XMLHttpRequest.callbacks ) {        // we've already overridden send() so just add the callback        XMLHttpRequest.callbacks.push( callback );    } else {        // create a callback queue        XMLHttpRequest.callbacks = [callback];        // store the native send()        oldSend = XMLHttpRequest.prototype.send;        // override the native send()        XMLHttpRequest.prototype.send = function(){ // process the callback queue // the xhr instance is passed into each callback but seems pretty useless // you can't tell what its destination is or call abort() without an error // so only really good for logging that a request has happened // I could be wrong, I hope so... // EDIT: I suppose you could override the onreadystatechange handler though for( i = 0; i < XMLHttpRequest.callbacks.length; i++ ) {     XMLHttpRequest.callbacks[i]( this ); } // call the native send() oldSend.apply(this, arguments);        }    }}// e.g.addXMLRequestCallback( function( xhr ) {    console.log( xhr.responseText ); // (an empty string)});addXMLRequestCallback( function( xhr ) {    console.dir( xhr ); // have a look if there is anything useful here});


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/596753.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号