[size=18px]通过下面的这个函数,我想知道obj.responseText的值可以在客户端控制么??[/size]
- HTML code
<form id="frmbox" method="post" action="/ajaxaction.php"></form>
- JScript code
function AjaxSubmit() { var ajax = new AJAXRequest(); ajax.postf("frmbox", Callback); } function Callback(obj) { var a = obj.responseText; result = 0; if (!isNaN(a)) result = parseInt(a); } function AJAXRequest() { var xmlPool=[],objPool=[],AJAX=this,ac=arguments.length,av=arguments; var xmlVersion=["MSXML2.XMLHTTP","Microsoft.XMLHTTP"]; var ec=emptyFun=function(){}; av=ac>0?typeof(av[0])=="object"?av[0]:{}:{}; var encode=$GEC(av.charset+""); var prop=['url','content','method','async','timeout','ontimeout','onrequeststart','onrequestend','oncomplete','onexception']; var defval=['','','GET',true,3600000,ec,ec,ec,ec,ec],l=prop.length; while(l--){this[prop[l]]=getp(av[prop[l]],defval[l]);} if(!getObj()) return false; function getp(p,d) { return p!=undefined?p:d; } function getObj() { var i,j,tmpObj; for(i=0,j=xmlPool.length;i<j;i++) if(xmlPool[i].readyState==0||xmlPool[i].readyState==4) return xmlPool[i]; try { tmpObj=new XMLHttpRequest; } catch(e) { for(i=0,j=xmlVersion.length;i<j;i++) { try { tmpObj=new ActiveXObject(xmlVersion[i]); } catch(e2) { continue; } break; } } if(!tmpObj) return false; else { xmlPool[xmlPool.length]=tmpObj; return xmlPool[xmlPool.length-1]; } } function $(id){return document.getElementById(id);} function $N(d){var n=d*1;return(isNaN(n)?0:n);} function $VO(v){return(typeof(v)=="string"?(v=$(v))?v:false:v);} function $GID(){return((new Date)*1);} function $SOP(id,ct){objPool[id+""]=ct;} function $LOP(id){return(objPool[id+""]);} function $SRP(f,r,p){return(function(s){s=f(s);for(var i=0;i<r.length;i++) s=s.replace(r[i],p[i]);return(s);});} function $GEC(cs){ if(cs.toUpperCase()=="UTF-8") return(encodeURIComponent); else return($SRP(escape,[/\+/g],["%2B"])); } function $ST(obj,text) { var nn=obj.nodeName.toUpperCase(); if("INPUT|TEXTAREA|OPTION".indexOf(nn)>-1) obj.value=text; else try{obj.innerHTML=text;} catch(e){}; } function $CB(cb) { if(typeof(cb)=="function") return cb; else { cb=$VO(cb); if(cb) return(function(obj){$ST(cb,obj.responseText);}); else return this.oncomplete; } } function $GP(p,v,d,f) { var i=0; while(i<v.length){p[i]=v[i]?f[i]?f[i](v[i]):v[i]:d[i];i++;} while(i<d.length){p[i]=d[i];i++;} } function send(purl,pc,pcbf,pm,pa) { var ct,ctf=false,xmlObj=getObj(),ac=arguments.length,av=arguments; if(!xmlObj) return false; var pmp=pm.toUpperCase()=="POST"?true:false; if(!pm||!purl) return false; var ev={url:purl, content:pc, method:pm}; purl+=(purl.indexOf("?")>-1?"&":"?")+"timestamp="+$GID(); xmlObj.open(pm,purl,pa); AJAX.onrequeststart(ev); if(pmp) xmlObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); ct=setTimeout(function(){ctf=true;xmlObj.abort();},AJAX.timeout); var rc=function() { if(ctf) { AJAX.ontimeout(ev); AJAX.onrequestend(ev); } else if(xmlObj.readyState==4) { ev.status=xmlObj.status; try{ clearTimeout(ct); } catch(e) {}; try{ if(xmlObj.status==200) pcbf(xmlObj); else AJAX.onexception(ev); } catch(e) { AJAX.onexception(ev); } AJAX.onrequestend(ev); } } xmlObj.onreadystatechange=rc; if(pmp) xmlObj.send(pc); else xmlObj.send(""); if(pa==false) rc(); return true; } this.setcharset=function(cs) { encode=$GEC(cs); } this.get=function() { var p=[],av=arguments; $GP(p,av,[this.url,this.oncomplete],[null,$CB]); if(!p[0]&&!p[1]) return false; return(send(p[0],"",p[1],"GET",this.async)); } this.update=function() { var p=[],purl,puo,pinv,pcnt,av=arguments; $GP(p,av,[this.oncomplete,this.url,-1,-1],[$CB,null,$N,$N]); if(p[2]==-1) p[3]=1; var sf=function(){send(p[1],"",p[0],"GET",AJAX.async);}; var id=$GID(); var cf=function(cc) { sf(); cc--; if(cc==0) return; $SOP(id,setTimeout(function(){cf(cc);},p[2])); } cf(p[3]); return id; } this.stopupdate=function(id) { clearTimeout($LOP(id)); } this.post=function() { var p=[],av=arguments; $GP(p,av,[this.url,this.content,this.oncomplete],[null,null,$CB]); if(!p[0]&&!p[2]) return false; return(send(p[0],p[1],p[2],"POST",this.async)); } this.postf=function() { var p=[],fo,vaf,pcbf,purl,pc,pm,ac=arguments.length,av=arguments; fo=ac>0?$VO(av[0]):false; if(!fo||(fo&&fo.nodeName!="FORM")) return false; vaf=fo.getAttribute("onvalidate"); vaf=vaf?(typeof(vaf)=="string"?new Function(vaf):vaf):null; if(vaf&&!vaf()) return false; $GP(p,[av[1],fo.getAttribute("action"),fo.getAttribute("method")],[this.oncomplete,this.url,this.method],[$CB,null,null]); pcbf=p[0];purl=p[1]; if(!pcbf&&!purl) return false; pc=this.formToStr(fo); if(!pc) return false; if(p[2].toUpperCase()=="POST") return(send(purl,pc,pcbf,"POST",true)); else { purl+=(purl.indexOf("?")>-1?"&":"?")+pc; return(send(purl,"",pcbf,"GET",true)); } } this.formToStr=function(fc) { var i,qs="",and="",ev=""; for(i=0;i<fc.length;i++) { e=fc[i]; if (e.name!='') { if (e.type=='select-one'&&e.selectedIndex>-1) ev=e.options[e.selectedIndex].value; else if (e.type=='checkbox' || e.type=='radio') { if (e.checked==false) continue; ev=e.value; } else ev=e.value; ev=encode(ev); qs+=and+e.name+'='+ev; and="&"; } } return qs; } }