一些常用的Ajax函数 Common.js //返回无重复数字 function noRepNo(){return (new Date()).getTime();} //返回[0,rang)的随机数 function Rnd(rang){return Math.floor(Math.random()*rang);} //返回浏览器类型 function get_agt(){ if (!(window.XMLHttpRequest)&!(window.ActiveXObject)) top.location="badbrow.htm"; var agt=navigator.userAgent.toLowerCase(); if (agt.indexOf('msie')!=-1) return "e"; if (agt.indexOf('opera')!=-1) return "o"; if (agt.indexOf('mozilla5.0')!=-1) return "m"; return ""; } //function isNumber(a){return Number(a)==a} function isInt(a){return Math.floor(a)==a} function isArray(obj){return (typeof obj=="object")&&obj.constructor==Array;} function isString(obj){return (typeof obj=="string")&&obj.constructor==String;} function isNumber(obj){return (typeof obj=="number")&&obj.constructor==Number;} function isDate(obj){return (typeof obj=="object")&&obj.constructor==Date;} function isFunction(obj){return (typeof obj=="function")&&obj.constructor==Function;} function isObject(obj){return (typeof obj=="object")} //字符串替换 function ReplaceString(str,o,e){ var t=""; while (str.indexOf(o)!=-1){ t+=str.substring(0,str.indexOf(o))+e; str=str.substring(str.indexOf(o)+o.length,str.length); } return t+str; } function xmlEncode(x){return replace(replace(replace(x,"&","&"),"<","<"),">",">");} function xmlDecode(x){return replace(replace(replace(x,"&","&"),"<","<"),">",">");} function htmlcode(x){return replace(replace(replace(replace(replace(x,"&","&")," "," "),"<","<"),">",">"),"/n","<br/>");} function RemoveAllChild(obj){while(obj.firstChild)obj.removeChild(obj.firstChild);} //创建ajax对象 function crt_ajax(){ var ajax = false; if(window.XMLHttpRequest) { //Mozilla 浏览器 ajax = new XMLHttpRequest(); if (ajax.overrideMimeType) {//设置MiME类别 ajax.overrideMimeType("text/xml"); } } else if (window.ActiveXObject) { // IE浏览器 try { ajax = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { ajax = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } return ajax; } function get_request(){ var ajax=crt_ajax(); ajax.onreadystatechange=function(){ if(ajax.readyState==4){ switch(ajax.status){ case 200: alert(ajax.responseText); break; default: alert(ajax.statusText+"/r/n/r/n"+ajax.responseText); } } }; ajax.open("GET", "url", true); ajax.send(null); } function post_request(){ var PostText="PostText"; var ajax=crt_ajax(); ajax.onreadystatechange=function(){ if(ajax.readyState==4){ switch(ajax.status){ case 200: alert(ajax.responseText); break; default: alert(ajax.statusText+"/r/n/r/n"+ajax.responseText); } } }; ajax.open("POST", "url", true); ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); ajax.setRequestHeader("Content-length", PostText.length); ajax.setRequestHeader("Connection", "close"); ajax.send(PostText); } //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- // // 载入提示标志开始 新的设置会覆盖掉以前的设置(包括定时器) // // 参数表 // flag: 是否显示标志 Integer或String类型 // 0 不显示标志 // 1 只显示“Loading...” // 2 显示“loading...”,5秒后改成“Still work” // String 显示 flag // // 使用的外部函数 // noRepNo() // RemoveAllChild(obj) // // 使用的样式表 // LoadingFlag // function LoadingSet(flag){ var tag=noRepNo(); LoadingSet.prototype.tag=tag; var _Loading=document.getElementById("loadingFlag"); if(!_Loading){ _Loading=document.createElement("div"); _Loading.className="LoadingFlag"; _Loading.id="loadingFlag"; document.body.appendChild(_Loading); } RemoveAllChild(_Loading); if(!flag)_Loading.style.display="none"; else{ _Loading.style.display=""; switch(typeof flag){ case "number": switch(flag){ case 1: _Loading.appendChild(document.createTextNode("Loading...")); break; case 2: _Loading.appendChild(document.createTextNode("Loading...")); setTimeout( function(){ if(LoadingSet.prototype.tag!=tag)return; RemoveAllChild(_Loading); _Loading.appendChild(document.createTextNode("Still work")); } ,5000); break; } break; case "string": _Loading.appendChild(document.createTextNode(flag)); break; default: } } } // 载入提示标志结束 // //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- // // 全屏幕半透明阻碍开始 // // 参数表 // obj: 要显示消息的 object // // 使用的外部函数 // RemoveAllChild(obj) // // 使用的样式表 // BlockMask // function BlockSet(obj){ var _Block=document.getElementById("BlockMask"); var _Msg=document.getElementById("BlockMsg"); if(!_Block){ _Block=document.createElement("div"); _Block.id="BlockMask"; _Block.className="BlockMask"; _Block.style.display="" _Msg=document.createElement("div"); _Msg.id="BlockMsg"; _Msg.className="BlockMaskMsg"; _Block.appendChild(_Msg); document.body.appendChild(_Block); } RemoveAllChild(_Msg); if(obj==null){ _Block.style.display="none"; }else{ _Block.style.display="" _Msg.appendChild(obj); } } // 全屏幕半透明阻碍结束 // //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- // // 时间服务代码开始 // // 功能 // 从服务器获取时间,并自动更新。 // css样式:spam.DateTime // // 时间 // 2009年2月2日14:01:37 // // 服务器返回数据格式如下 // <?xml version="1.0" encoding="utf-8" ?> // <ServerTime> // <Year>2009</Year> // <Month>2</Month> // <Day>2</Day> // <Hour>12</Hour> // <Minute>54</Minute> // <Second>18</Second> // </ServerTime> // // 使用的外部函数 // crt_ajax() // noRepNo() // RemoveAllChild(obj) // // 使用的样式表 // DateTime // function GetServerTime(){ var t_Year=t_Month=t_Day=t_Hour=t_Minute=t_Second=0; var DateServer=TimeServer=""; var UpDateTime=function(){ var _DateTime=document.getElementById("DateTimeNow"); if(!_DateTime){ _DateTime=document.createElement("spam"); _DateTime.id="DateTimeNow"; _DateTime.className="DateTime"; document.body.appendChild(_DateTime); } RemoveAllChild(_DateTime); _DateTime.appendChild(document.createTextNode(GetDateTime())); } var GetDateTime=function(){ DateServer=t_Year+"-"+t_Month+"-"+t_Day; TimeServer=""; if(t_Hour<10)TimeServer+="0"; TimeServer+=t_Hour+":"; if(t_Minute<10)TimeServer+="0"; TimeServer+=t_Minute+":" if(t_Second<10)TimeServer+="0"; TimeServer+=t_Second; return DateServer+" "+TimeServer; } var DateTimeTick=function(){ var g=1; g=Math.floor((t_Second+=g)/60);t_Second%=60; g=Math.floor((t_Minute+=g)/60);t_Minute%=60; g=Math.floor((t_Hour+=g)/24);t_Hour%=24; g=Math.floor((t_Day+=g)>getDaysInMonth());t_Day=(t_Day-1)%getDaysInMonth()+1; g=Math.floor((t_Month+=g)>12);t_Month=(t_Month-1)%12+1; t_Year+=g; UpDateTime(); } var getDaysInMonth=function(){ return new Date(t_Year+"/"+(t_Month+1)+"/0").getDate(); } var ajax=crt_ajax(); ajax.onreadystatechange=function(){ if(ajax.readyState==4){ switch(ajax.status){ case 200: var xml=ajax.responseXML; try{ t_Year=Number(xml.getElementsByTagName("Year")[0].firstChild.data); t_Month=Number(xml.getElementsByTagName("Month")[0].firstChild.data); t_Day=Number(xml.getElementsByTagName("Day")[0].firstChild.data); t_Hour=Number(xml.getElementsByTagName("Hour")[0].firstChild.data); t_Minute=Number(xml.getElementsByTagName("Minute")[0].firstChild.data); t_Second=Number(xml.getElementsByTagName("Second")[0].firstChild.data); } catch(e){ alert("Time data error:/r/n/r/n"+e.name+"/r/n"+e.description); } UpDateTime(); setInterval(DateTimeTick,1000); break; default: alert("Ger Servertime error:"+ajax.statusText); } } }; ajax.open("GET", "ServerTime.aspx?rnd="+noRepNo(), true); ajax.send(null); } // 时间服务代码结束 // //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Common.css spam.DateTime { position: fixed; top: 10px; left: 10px; font-size: large; font-weight: bold; color: #008080; } div.LoadingFlag { background-color: #FF5B5B; color: #000000; font-weight: bold; position: fixed; right: 5px; top: 5px; z-index:99999; } div.BlockMask { position: fixed; top: 0px; left: 0px; width: 100%; height: 100%; opacity: .7; filter: alpha( opacity=70 ); -moz-opacity: .7; background-color: #008080; z-index: 9000; } div.BlockMaskMsg { margin: 0; position: fixed; width: 50%; height: 50px; top: 40%; left: 25%; text-align: center; color: #FF0000; border-right: #009900 1px solid; border-top: #009900 1px solid; border-left: #009900 1px solid; border-bottom: #009900 1px solid; background-color: #CCFFCC; } ServerTime.aspx.cs using System; using System.Xml; using System.Text; using System.Threading; public partial class ServerTime : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { DateTime now = DateTime.Now; XmlDocument xdoc = new XmlDocument(); xdoc.AppendChild(xdoc.CreateXmlDeclaration("1.0", "utf-8", "")); XmlNode root = xdoc.CreateElement("ServerTime"); xdoc.AppendChild(root); XmlNode node = xdoc.CreateElement("Year"); node.InnerText = now.Year.ToString(); root.AppendChild(node); node = xdoc.CreateElement("Month"); node.InnerText = now.Month.ToString(); root.AppendChild(node); node = xdoc.CreateElement("Day"); node.InnerText = now.Day.ToString(); root.AppendChild(node); node = xdoc.CreateElement("Hour"); node.InnerText = now.Hour.ToString(); root.AppendChild(node); node = xdoc.CreateElement("Minute"); node.InnerText = now.Minute.ToString(); root.AppendChild(node); node = xdoc.CreateElement("Second"); node.InnerText = now.Second.ToString(); root.AppendChild(node); Thread.Sleep(6000); Response.ContentType = "text/xml"; Response.ContentEncoding = Encoding.UTF8; Response.Write(xdoc.OuterXml); Response.End(); } } index.htm <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>无标题页</title> <mce:script src="Common.js" mce_src="Common.js" type="text/javascript"></mce:script> <link rel="Stylesheet" href="Common.css" mce_href="Common.css" type="text/css" /> <mce:script type="text/javascript"><!-- function into(){ GetServerTime(); LoadingSet(2); BlockSet(document.createTextNode("正在载入")); setTimeout( function(){ LoadingSet(0); setTimeout( function(){ BlockSet(null); } ,1000); } ,7000); } // --></mce:script> </head> <body οnlοad="into()"> <br />j<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /> <br />y<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /> <br />t<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /> <br />r<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />h<br /> </body> </html>