loadding.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. function loadExtentFile(filename, fileType){
  2. var b = document.scripts[document.scripts.length-1].src.match(/[\s\S]*\//)[0];
  3. if(fileType == "js"){
  4. var oJs = document.createElement('script');
  5. oJs.setAttribute("type","text/javascript");
  6. oJs.setAttribute("src", filename);//文件的地址 ,可为绝对及相对路径
  7. document.getElementsByTagName("head")[0].appendChild(oJs);//绑定
  8. }else if(fileType == "css"){
  9. var oCss = document.createElement("link");
  10. oCss.setAttribute("rel", "stylesheet");
  11. oCss.setAttribute("type", "text/css");
  12. oCss.setAttribute("href", b+"/"+filename);
  13. document.getElementsByTagName("head")[0].appendChild(oCss);//绑定
  14. }
  15. }
  16. loadExtentFile("need/loadding.css", "css");
  17. var open = window.XMLHttpRequest.prototype.open,
  18. send = window.XMLHttpRequest.prototype.send,
  19. onReadyStateChange;
  20. function openReplacement(method, url, async, user, password) {
  21. console.log("开始请求")
  22. $("body").append('<div id="over" class="over"></div>');
  23. $("body").append('<div id="layout" class="layout"><img src="../images/o_31.gif" /></div>')
  24. document.getElementById("over").style.display = "block";
  25. document.getElementById("layout").style.display = "block";
  26. var syncMode = async !== false ? 'async' : 'sync';
  27. return open.apply(this, arguments);//可以理解成是继承,继承open对象中的属性和方法
  28. }
  29. function sendReplacement(data) {
  30. if(this.onreadystatechange) {
  31. this._onreadystatechange = this.onreadystatechange;
  32. }
  33. this.onreadystatechange = onReadyStateChangeReplacement;
  34. return send.apply(this, arguments);
  35. }
  36. function onReadyStateChangeReplacement() {
  37. //如果不判断readyState等于4,state只要变化,就进了if内,会导致一个ajax call,多次打印
  38. if(this._onreadystatechange&&this.readyState==4) {
  39. //我这里是需要对ajax中的json类型进行过滤
  40. if(this.getResponseHeader("Content-Type")=='application/json'){
  41. if(this.responseText){
  42. var obj = eval('('+this.responseText+')');
  43. // console.log('NAME'+obj.emptyFlag+"\n");
  44. }
  45. }
  46. $("#over").remove();
  47. $("#layout").remove();
  48. console.log("请求结束")
  49. return this._onreadystatechange.apply(this, arguments);
  50. }
  51. }
  52. //可以打印js对象
  53. function dump_obj(myObject) {
  54. var s = "";
  55. for (var property in myObject) {
  56. s = s + "\n "+property +": " + myObject[property] ;
  57. }
  58. console.log(s);
  59. }
  60. window.XMLHttpRequest.prototype.open = openReplacement;
  61. window.XMLHttpRequest.prototype.send = sendReplacement;