- eddie_lau
- 等级: 初级会员
- 文章: 14
- 积分: 30
- 来自: ...
|
net.js 代码
- var net=new Object();
- net.READY_STATE_UNINITIALIZED=0;
- net.READY_STATE_LOADING=1;
- net.READY_STATE_LOADED=2;
- net.READY_STATE_INTERACTIVE=3;
- net.READY_STATE_COMPLETE=4;
- net.ContentLoader=function(url,onload,onerror){
- this.url=url;
- this.req=null;
- this.onload=onload;
- this.onerror=(onerror) ? onerror : this.defaultError;
- this.loadXMLDoc(url);
- }
- net.ContentLoader.prototype={
- loadXMLDoc:function(url){
- if (window.XMLHttpRequest){
- this.req=new XMLHttpRequest();
- } else if (window.ActiveXObject){
- this.req=new ActiveXObject("Microsoft.XMLHTTP");
- }
- if (this.req){
- try{
- var loader=this;
- this.req.onreadystatechange=function(){
- loader.onReadyState.call(loader);
- }
- this.req.open('GET',url,true);
- this.req.send(null);
- }catch (err){
- this.onerror.call(this);
- }
- }
- },
- onReadyState:function(){
- var req=this.req;
- var ready=req.readyState;
- if (ready==net.READY_STATE_COMPLETE){
- var httpStatus=req.status;
- if (httpStatus==200 || httpStatus==0){
- this.onload.call(this);
- }else{
- this.onerror.call(this);
- }
- }
- },
- defaultError:function(){
- alert("error fetching data!"
- +"\n\nreadyState:"+this.req.readyState
- +"\nstatus: "+this.req.status
- +"\nheaders: "+this.req.getAllResponseHeaders());
- }
- }
test.htm 代码
- function test(){
- new net.ContentLoader('mydata.xml',parseMyData);
- }
-
- function parseMyData()
- {
- //因为我已经传了 parseMyData 这个函数给 net 做回调函数,
- //所以在这里可以直接使用 net.js 的资源
- var script=this.req.responseText;
- eval(script);
- //使用eval可以执行ajax返回的javascript代码
- }
-
- <input type="button" name="button" value="Button" onclick="javascript:test();">
- <p>
- <div id="myData" style="background-color:#c6d9ef"> </div>
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
返回顶楼 |
|
|