returnhtm.js
-------------------------------------------------------------------------------------------
var filesadded = ""
function $(o){return document.getElementById(o);}
function XHConn()
{
var http = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
this.connect = function(element,sURL,sMethod,sVars){
if(!http){$(element).innerHTML="<img src=images/loading.gif />初始化失败......";return false;}
sMethod = sMethod.toUpperCase();
try {
if (sMethod == "GET") {
http.open(sMethod, sURL+"?"+sVars, true);
http.setRequestHeader("Content-Type","text/html;encoding=GB2312");
sVars = "";
}else{
http.open(sMethod, sURL, true);
http.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");
http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
}
http.onreadystatechange = function(){
if (http.readyState == 4){
if(http.status == 200){
if(http.responseText!=""){
var htmlText=http.responseText;
var DomJs=htmlText.match(/<load-js>[/s/S]+?<//load-js>/g);//获取载入JS文件
var DomCss=htmlText.match(/<load-css>[/s/S]+?<//load-css>/g);//获取载入CSS文件
var DomScript=htmlText.match(/<load-script>[/s/S]+?<//load-script>/g);//获取载入函数
var MyScript=htmlText.match(/<run-script>[/s/S]+?<//run-script>/g);//获取执行语句
htmlText=htmlText.replace(/<load-js>[/s/S]+?<//load-js>/g,"")//删除载入JS文件文本
htmlText=htmlText.replace(/<load-css>[/s/S]+?<//load-css>/g,"")//删除载入CSS文件文本
htmlText=htmlText.replace(/<load-script>[/s/S]+?<//load-script>/g,"")//删除载入函数文本
htmlText=htmlText.replace(/<run-script>[/s/S]+?<//run-script>/g,"")//删除执行语句文本
$(element).innerHTML=htmlText;//输出文本
//载入JS文件,以<load-js>开头</load-js>结束
if(DomJs!=null){
for(i=0;i<DomJs.length;i++){
DomJs[i]=DomJs[i].replace(/<load-js>/g,"");
DomJs[i]=DomJs[i].replace(/<//load-js>/g,"");
if (filesadded.indexOf("["+DomJs[i]+"]")==-1){
var headerDom=document.getElementsByTagName('head')[0];
var jsDom=document.createElement('script');
jsDom.setAttribute("type","text/javascript");
jsDom.setAttribute("src",DomJs[i]);
headerDom.appendChild(jsDom);
filesadded += "["+DomJs[i]+"]";
}
}
}
//载入CSS文件,以<load-css>开头</load-css>结束
if(DomCss!=null){
for(i=0;i<DomCss.length;i++){
DomCss[i]=DomCss[i].replace(/<load-css>/g,"");
DomCss[i]=DomCss[i].replace(/<//load-css>/g,"");
if (filesadded.indexOf("["+DomCss[i]+"]")==-1){
var headerDom=document.getElementsByTagName('head')[0];
var jsDom=document.createElement('link');
jsDom.setAttribute("rel", "stylesheet");
jsDom.setAttribute("type","text/javascript");
jsDom.setAttribute("href",DomCss[i]);
headerDom.appendChild(jsDom);
filesadded += "["+DomCss[i]+"]";
}
}
}
//载入JS函数,以<load-script>开头</load-script>结束
if(DomScript!=null){
for(i=0;i<DomScript.length;i++){
DomScript[i]=DomScript[i].replace(/<load-script>/g,"");
DomScript[i]=DomScript[i].replace(/<//load-script>/g,"");
var headerDom=document.getElementsByTagName('head').item[0];
var jsDom=document.createElement('script');
jsDom.type='text/javascript';
jsDom.language='javascript';
jsDom.defer=true;
jsDom.text=DomScript[i];
headerDom.appendChild(jsDom);
}
}
//执行JS,以<run-script>开头</run-script>结束
if(MyScript!=null){
for(i=0;i<MyScript.length;i++){
MyScript[i]=MyScript[i].replace(/<run-script>/g,"");
MyScript[i]=MyScript[i].replace(/<//run-script>/g,"");
eval(MyScript[i]);
}
}
}else{$(element).innerHTML="暂无数据......";}
}else{$(element).innerHTML="你所请求的页面发生异常!返回:"+http.status;}
}//else{$(element).innerHTML="<img src=images/loading.gif />载入数据中......";}
};
http.send(sVars);
}
catch(z) { return false; }
return true;
};
return this;
}
function getFormData(formname) {
var dataString = "";
function addParam(name, value) {
dataString += (dataString.length > 0 ? "&" : "")
+ escape(name).replace(//+/g, "%2B") + "="
+ encodeURIComponent(escape(value ? value : ""));
}
var elemArray = $(formname).elements;
for (var i = 0; i < elemArray.length; i++) {
var element = elemArray[i];
var elemType = element.type.toUpperCase();
var elemName = element.name;
var elemId = element.id;
if (elemName) {
if (elemType == "TEXT"
|| elemType == "TEXTAREA"
|| elemType == "PASSWORD"
|| elemType == "HIDDEN")
addParam(elemName, element.value);
else if (elemType == "CHECKBOX" && element.checked)
addParam(elemName, element.value ? element.value : "On");
else if (elemType == "RADIO" && element.checked)
addParam(elemName, element.value);
else if (elemType.indexOf("SELECT") != -1)
for (var j = 0; j < element.options.length; j++) {
var option = element.options[j];
if (option.selected)
addParam(elemName,
option.value ? option.value : option.text);
}
}else if(elemId){
if (elemType == "TEXT"
|| elemType == "TEXTAREA"
|| elemType == "PASSWORD"
|| elemType == "HIDDEN")
addParam(elemId, element.value);
else if (elemType == "CHECKBOX" && element.checked)
addParam(elemId, element.value ? element.value : "On");
else if (elemType == "RADIO" && element.checked)
addParam(elemId, element.value);
else if (elemType.indexOf("SELECT") != -1)
for (var j = 0; j < element.options.length; j++) {
var option = element.options[j];
if (option.selected)
addParam(elemId,
option.value ? option.value : option.text);
}
}
}
return dataString;
}
//DIV名,交互页面,GET or POST,参数,表单名
function htmlupdate(element,url,method,data,formname){
var xh = new XHConn();
if($(formname)){data+="&"+getFormData(formname);}
xh.connect(element,url,method,data);
}
-------------------------------------------------------------------------------------
ASP调用
<script language="JavaScript" src="returnhtm.js" type="text/javascript"></script>
<script>htmlupdate('reg_main','UserCheck.asp','GET','cmd=1');</script>
<input type="button" value="创建用户帐户" οnclick="this.disabled=true;htmlupdate('temp','/UserCheck.asp','GET','cmd=3','user_reg');this.disabled=false;" name="sbfrm"/>
<input name="UserName" type="text" class="myinput" id="UserName" onBlur="JavaScript:htmlupdate('user_show','/UserCheck.asp','POST','cmd=2','user_reg');" />
-------------------------------------------------------------------------------------
UserCheck.asp
-------------------------------------------------------------------------------------
<%
Response.Buffer = True
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "No-Cache"
Response.CharSet = "GB2312"
cmd=cint(request("cmd"))
Select Case cmd
Case 1
..........................................
Case 2
UserName=trim(unescape(request("UserName")))
if RegExpTest("^[@./-_A-Za-z0-9/u4E00-/u9FA5]{4,20}$",UserName)=false then
response.write "<img src=/images/ERROR.GIF /> <font color=#FF0000>由4-20位的中英文与字符@.-_组成!</font>"
else
sql="select * from dv_user where username='"&UserName&"'"
set rs=conn.execute(sql)
if not rs.eof then
Response.write "<img src=/images/ERROR.GIF /> <font color=#FF0000>该帐号已经存在!</font>"
else
Response.write "<img src=/images/RIGHT.GIF />"
end if
set rs=nothing
end if
Case 3
UserName=trim(unescape(request("UserName")))
if RegExpTest("^[@./-_A-Za-z0-9/u4E00-/u9FA5]{4,20}$",UserName)=false then
response.write "<run-script>alert('用户帐号由4-20个英文字母或数字、中文、字符@.-_等组成!');$('UserName').focus();</run-script>"
response.end
else
sql="select * from dv_user where username='"&UserName&"'"
set rs=conn.execute(sql)
if not rs.eof then
Response.write "<run-script>alert('该帐号已经存在!');$('UserName').focus();</run-script>"
response.end
end if
set rs=nothing
end if
nickname=trim(unescape(request("nickname")))
if RegExpTest("^[A-Za-z0-9/u4E00-/u9FA5]{1,20}$",nickname)=false then
Response.write "<run-script>alert('昵称必须是1-20位的中英文组成!');$('nickname').focus();</run-script>"
response.end
end if
UserPassword=trim(unescape(request("UserPassword")))
if RegExpTest("^[A-Za-z0-9]{4,20}$",UserPassword)=false then
Response.write "<run-script>alert('密码由4-20个英文字母或数字组成!');$('UserPassword').focus();</run-script>"
response.end
end if
UserPassword1=trim(unescape(request("UserPassword1")))
if UserPassword<>UserPassword1 then
Response.write "<run-script>alert('您两次输入的密码不一致,请确认!');$('UserPassword1').focus();</run-script>"
response.end
end if
UserEmail=trim(unescape(request("UserEmail")))
if RegExpTest("^([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[/.][a-z]{2,3}([/.][a-z]{2})?$",UserEmail)=false then
Response.write "<run-script>alert('Email地址格式不正确!');$('UserEmail').focus();</run-script>"
response.end
end if
getcode=trim(unescape(request("getcode")))
if getcode<>Trim(Session("getCode")) then
Response.write "<run-script>alert('验证码错误!');$('getcode').focus();</run-script>"
response.end
end if
session.contents.remove("getCode")
UserFace=Trim(unescape(request("UserFace")))
UserWidth=Trim(unescape(request("UserWidth")))
UserHeight=Trim(unescape(request("UserHeight")))
UserIM=Trim(unescape(request("UserIM")))
UserClass=Trim(unescape(request("UserClass")))
userWealth=Trim(unescape(request("userWealth")))
userEP=Trim(unescape(request("userEP")))
userCP=Trim(unescape(request("userCP")))
UserFav=Trim(unescape(request("UserFav")))
UserInfo=Trim(unescape(request("UserInfo")))
UserSetting=Trim(unescape(request("UserSetting")))
UserGroupID=Trim(unescape(request("UserGroupID")))
TitlePic=Trim(unescape(request("TitlePic")))
TruePassWord=Trim(unescape(request("TruePassWord")))
UserToday=Trim(unescape(request("UserToday")))
CommID=Trim(unescape(request("CommID")))
sql="set nocount on;insert into Dv_User (username,UserPassword,UserEmail,UserFace,UserWidth,UserHeight,UserIM,UserClass,userWealth,userEP,userCP,UserFav,UserInfo,UserSetting,UserGroupID,TitlePic,TruePassWord,UserToday,c_id) values ('"&username&"','"&md5(md5(UserPassword,16),32)&"','"&UserEmail&"','"&UserFace&"',"&UserWidth&","&UserHeight&",'"&UserIM&"','"&UserClass&"',"&userWealth&","&userEP&","&userCP&",'"&UserFav&"','"&nickname&UserInfo&"','"&UserSetting&"',"&UserGroupID&",'"&TitlePic&"','"&TruePassWord&"','"&UserToday&"',"&CommID&");select @@identity as newid;SET NOCOUNT OFF"
set rs=conn.execute(sql)
'Response.Cookies("user_userid")=rs("newid")
'Response.Cookies("user_username")=UserName
'Response.Cookies("user_pass")=md5(md5(now(),16),32)
set rs=nothing
Response.Write "<run-script>location.href='my_user.asp?CommID="&CommID&"';</run-script>"
End Select
'正则表表达式验证函数 patrn-正则表达式 strng-需要验证的字符串
Function RegExpTest(patrn, strng)
Dim regEx, retVal ' 建立变量。
Set regEx = New RegExp ' 建立正则表达式。
regEx.Pattern = patrn ' 设置模式。
regEx.IgnoreCase = False ' 设置是否区分大小写。
retVal = regEx.Test(strng) ' 执行搜索测试。
RegExpTest = retVal '返回不尔值,不符合就返回false,符合为true
End Function
%>
-------------------------------------------------------------------------------------