function loadExtentFile(filename, fileType){ var b = document.scripts[document.scripts.length-1].src.match(/[\s\S]*\//)[0]; if(fileType == "js"){ var oJs = document.createElement('script'); oJs.setAttribute("type","text/javascript"); oJs.setAttribute("src", filename);//文件的地址 ,可为绝对及相对路径 document.getElementsByTagName("head")[0].appendChild(oJs);//绑定 }else if(fileType == "css"){ var oCss = document.createElement("link"); oCss.setAttribute("rel", "stylesheet"); oCss.setAttribute("type", "text/css"); oCss.setAttribute("href", b+"/"+filename); document.getElementsByTagName("head")[0].appendChild(oCss);//绑定 } } loadExtentFile("need/loadding.css", "css"); var open = window.XMLHttpRequest.prototype.open, send = window.XMLHttpRequest.prototype.send, onReadyStateChange; function openReplacement(method, url, async, user, password) { console.log("开始请求") $("body").append('
'); $("body").append('
') document.getElementById("over").style.display = "block"; document.getElementById("layout").style.display = "block"; var syncMode = async !== false ? 'async' : 'sync'; return open.apply(this, arguments);//可以理解成是继承,继承open对象中的属性和方法 } function sendReplacement(data) { if(this.onreadystatechange) { this._onreadystatechange = this.onreadystatechange; } this.onreadystatechange = onReadyStateChangeReplacement; return send.apply(this, arguments); } function onReadyStateChangeReplacement() { //如果不判断readyState等于4,state只要变化,就进了if内,会导致一个ajax call,多次打印 if(this._onreadystatechange&&this.readyState==4) { //我这里是需要对ajax中的json类型进行过滤 if(this.getResponseHeader("Content-Type")=='application/json'){ if(this.responseText){ var obj = eval('('+this.responseText+')'); // console.log('NAME'+obj.emptyFlag+"\n"); } } $("#over").remove(); $("#layout").remove(); console.log("请求结束") return this._onreadystatechange.apply(this, arguments); } } //可以打印js对象 function dump_obj(myObject) { var s = ""; for (var property in myObject) { s = s + "\n "+property +": " + myObject[property] ; } console.log(s); } window.XMLHttpRequest.prototype.open = openReplacement; window.XMLHttpRequest.prototype.send = sendReplacement;