为了跟上潮流,体验一下ajax技术(网上称呼:ajax无刷新技术)。最近看了jQuery.js和prototype.js,学了不少东西。与大家共享我在网上收集和自己整理的ajax类 和js代码。简单、实用。
//返回参数传入的id的那个元素。 function $(objID){ return document.getElementById(objID); } //返回任何输入表单控件的值。 function $f(objID){ return document.getElementById(objID).value; } //设置元素的html function $h(objID,html){ $(objID).innerHTML=html; } //设置元素的text function $t(objID,txt){ $(objID).innerText=txt; } //隐藏element function hide(objID){$( objID).style.display="none"; } //显示element function show(objID){ $(objID).style.display=""; } function updateObj(obj,data){ //该函数等于=$t(Obj,textstring) var textNode = document.createTextNode(data); document.getElementById(obj).appendChild(textNode); //createTextNode 创建的是内容 //createElement 创建的标签 } //ajax类 function AJAX() { var XMLHttp = false; var ObjSelf; ObjSelf=this; try { XMLHttp=new XMLHttpRequest; } catch(e) { try { XMLHttp=new ActiveXObject("MSXML2.XMLHttp"); } catch(e2) { try { XMLHttp=new ActiveXObject("Microsoft.XMLHttp"); } catch(e3) { XMLHttp=false; } } } if (!XMLHttp) return false; this.method="post"; this.url="" this.url += (this.url.indexOf("?") >= 0) ? "&nowtime=" + new Date().getTime():"?nowtime=" + new Date().getTime(); this.async=true; this.data=""; this.backtext=true this.callback=function(){return;} this.method=this.method.toLowerCase(); this.send=function() { if(!this.method||!this.url||!this.async) return false; XMLHttp.open (this.method, this.url, this.async); if(this.method=="post"){ XMLHttp.setRequestHeader("Content-Length",(this.data).length); XMLHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); } XMLHttp.onreadystatechange=function(){ if(XMLHttp.readyState==4){ if(XMLHttp.status==200){ ObjSelf.callback(); }else { alert("您所请求的页面有异常。"); } } } if(this.method=="post") XMLHttp.send(this.data); else XMLHttp.send(null); } this.gettext=function(){ if(XMLHttp.readyState==4) { if(XMLHttp.status==200) { if (this.backtext==true){ return XMLHttp.responseText; }else{ return XMLHttp.responseXML; } }else { alert("您所请求的页面有异常。"); } } } } /*----------------------------------------------------- 补充: Ajax的调用方法。ajax实例*/ //--------------------------- //--ajax读取程序,用get方法 function ajaxread(objID,lx,other){ var ajax=new AJAX(); ajax.method="get"; ajax.url="show.asp?lx="+lx; ajax.callback=function(){ $h(objID,ajax.gettext()); } ajax.send(); } //--ajax保存数据,用post方法 function SaveData(){ var ajax=new AJAX(); ajax.method="post"; ajax.url="SaveJsb.asp"; ajax.data="TmpContent="+escape($("TmpContent").value); show("Div"); $t("Div","正在提交和保存数据..."); ajax.callback=function(){ alert(ajax.gettext()); //返回的是:responseText setTimeout("hide(‘Div’)",5000);//5秒后隐藏提示框. } ajax.send(); } //--如果要放回xml,先设置:ajax .backtext=false; 再调用 ajax.gettext();则返回的是: responseXML。
//有什么问题可以QQ我:61788557