论坛首页 入门技术论坛

Ajax里的东西

浏览 1986 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-04-18  
net.js 代码
 
  1. var net=new Object();  
  2. net.READY_STATE_UNINITIALIZED=0;  
  3. net.READY_STATE_LOADING=1;  
  4. net.READY_STATE_LOADED=2;  
  5. net.READY_STATE_INTERACTIVE=3;  
  6. net.READY_STATE_COMPLETE=4;  
  7. net.ContentLoader=function(url,onload,onerror){  
  8.     this.url=url;  
  9.     this.req=null;  
  10.     this.onload=onload;  
  11.     this.onerror=(onerror) ? onerror : this.defaultError;  
  12.     this.loadXMLDoc(url);  
  13. }  
  14. net.ContentLoader.prototype={  
  15.     loadXMLDoc:function(url){  
  16.         if (window.XMLHttpRequest){  
  17.             this.req=new XMLHttpRequest();  
  18.         } else if (window.ActiveXObject){  
  19.             this.req=new ActiveXObject("Microsoft.XMLHTTP");  
  20.         }  
  21.         if (this.req){  
  22.             try{  
  23.             var loader=this;  
  24.             this.req.onreadystatechange=function(){  
  25.             loader.onReadyState.call(loader);  
  26.             }  
  27.                 this.req.open('GET',url,true);  
  28.                 this.req.send(null);  
  29.                 }catch (err){  
  30.                 this.onerror.call(this);  
  31.             }  
  32.         }  
  33.     },  
  34.     onReadyState:function(){  
  35.         var req=this.req;  
  36.         var ready=req.readyState;  
  37.         if (ready==net.READY_STATE_COMPLETE){  
  38.             var httpStatus=req.status;  
  39.             if (httpStatus==200 || httpStatus==0){  
  40.                 this.onload.call(this);  
  41.             }else{  
  42.                 this.onerror.call(this);  
  43.             }  
  44.         }  
  45.     },  
  46.     defaultError:function(){  
  47.         alert("error fetching data!"  
  48.         +"\n\nreadyState:"+this.req.readyState  
  49.         +"\nstatus: "+this.req.status  
  50.         +"\nheaders: "+this.req.getAllResponseHeaders());  
  51.     }  


test.htm 代码
 
  1. function test(){  
  2.     new net.ContentLoader('mydata.xml',parseMyData);
  3. }  
  4.   
  5. function parseMyData()  
  6. {  
  7.        //因为我已经传了 parseMyData 这个函数给 net 做回调函数,
  8.        //所以在这里可以直接使用 net.js 的资源
  9.        var script=this.req.responseText;
  10.        eval(script);
  11.        //使用eval可以执行ajax返回的javascript代码
  12. }  
  13.   
  14. <input type="button" name="button" value="Button" onclick="javascript:test();">  
  15. <p>  
  16. <div id="myData" style="background-color:#c6d9ef"> </div>  
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics