www.gusucode.com > 仿51.com的php源码 1.1 > Ajax.js
function InitAjax() { var XMLHTTP=false; try { XMLHTTP = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { XMLHTTP = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { XMLHTTP = false; } } if (!XMLHTTP && typeof XMLHttpRequest!='undefined') { XMLHTTP = new XMLHttpRequest(); } return XMLHTTP; } function LoadXMLHTTP(URL,DivName){ var XMLHttp = InitAjax(); XMLHttp.open("GET",URL,true); //异步 XMLHttp.setRequestHeader('charset','GBK'); XMLHttp.onreadystatechange = StateChangeProcess; XMLHttp.Send(null); function StateChangeProcess(){ if(XMLHttp.readyState == 4 && XMLHttp.Status == 200){ eval(DivName).innerHTML = XMLHttp.responseText; XMLHttp.abort(); } } } function ProcessInterFace_Comment(sCommentId,sType,sUserName){ //Create:Jonava:2006-10-24; var CommentId,Type,url,DivName,UserName; CommentId = sCommentId.split("|")[0]; Type = sType; UserName = sUserName; url = "vip_DiaryGetCommentList.php?user="+UserName+"&DispType=All&diary_id="+CommentId; DivName = Type +"_Comment_"+CommentId; if(document.all(Type +"_Comment_"+CommentId).style.display=="none" || document.all(Type +"_Comment_"+CommentId).style.display == ""){ document.all(Type +"_CommentLink_"+CommentId).innerHTML="<u>隐藏</u>"; }else{ document.all(Type +"_Comment_"+CommentId).style.display="none"; document.all(Type +"_CommentLink_"+CommentId).innerHTML="<u>查看</u>"; return; } if(document.all(Type +"_Comment_"+CommentId).innerHTML!="" || document.all(Type +"_Comment_"+CommentId).innerHTML!="正在加载评论列表,请稍候..."){ document.all(Type +"_Comment_"+CommentId).style.display="inline"; } LoadXMLHTTP(url,DivName); } //用户UID检测,防止恶意用户刷鲜花或鸡蛋; function SendGiftConfirm(op, num, tit, user, type) { var XMLHttp = InitAjax(); XMLHttp.open("GET", "Interface/GetUserInfoInterface.php?action=userEncode", true); XMLHttp.onreadystatechange = function() { if (XMLHttp.readyState == 4) { if (XMLHttp.status == 200) { var encode = XMLHttp.responseText; SendGift(op, num, tit, user, encode, type); } } } XMLHttp.send(null); return false; } //执行鲜花鸡蛋逻辑 function SendGift(op, num, tit, user, uid, type){ if(op==1){ if(confirm("确定要送鲜花吗?每朵鲜花将消费您村子币 0.05元!")){ var rv=prompt("请输入要鲜花的数量:", "1"); if(rv){ if(isNum(rv)){ var url = "ProcessInterface_FlowerEgg.php?user="+user+"&id="+num+"&op="+op+"&uid="+uid+"&num="+rv+"&title="+tit+"&type=" + type; var div_id = num; ProcessInterface_FlowerEgg(url,div_id,user); } else{ alert("请输入数字!"); return ; } } } } else{ if(confirm("确定要砸鸡蛋吗?每个鸡蛋将消费您村子币 0.05元!")){ var rv=prompt("请输入要鸡蛋的数量:", "1"); if(rv){ if(isNum(rv)){ //location.href="?user="+user+"&id="+num+"&op="+op+"&uid="+uid+"&num="+rv+"&title="+tit+"&type=" + type + "&sgbgurl=<?=urlencode($_SERVER["REQUEST_URI"])?>"; var url ="ProcessInterface_FlowerEgg.php?user="+user+"&id="+num+"&op="+op+"&uid="+uid+"&num="+rv+"&title="+tit+"&type=" + type; var div_id = num; ProcessInterface_FlowerEgg(url,div_id,user); } else{ alert("请输入数字!"); return ; } } } } } function ProcessInterface_FlowerEgg(URL,DivId,UserName){ var XMLHttp = InitAjax(); var sUserName = UserName; var ReturnValue; var sDivId = DivId; XMLHttp.open("GET",URL,true); //异步 XMLHttp.setRequestHeader('charset','GBK'); XMLHttp.onreadystatechange = StateChangeProcess; XMLHttp.Send(null); function StateChangeProcess(){ if(XMLHttp.readyState == 4 && XMLHttp.Status == 200){ ReturnValue = XMLHttp.responseText; PopMessageWindow(ReturnValue,sDivId,sUserName); } } } //PHP中trim()函数的JS版本; function trim(inputString) { if (typeof inputString != "string") { return inputString; } var retValue = inputString; var ch = retValue.substring(0, 1); while (ch == " ") { //检查字符串开始部分的空格 retValue = retValue.substring(1, retValue.length); ch = retValue.substring(0, 1); } ch = retValue.substring(retValue.length-1, retValue.length); while (ch == " ") { //检查字符串结束部分的空格 retValue = retValue.substring(0, retValue.length-1); ch = retValue.substring(retValue.length-1, retValue.length); } while (retValue.indexOf(" ") != -1) { //将文字中间多个相连的空格变为一个空格 retValue = retValue.substring(0, retValue.indexOf(" ")) + retValue.substring(retValue.indexOf(" ")+1, retValue.length); } return retValue; } //获取鲜花鸡蛋远程返回参数执行不同值; function PopMessageWindow(ReturnValue,sDivId,UserName){ var sDivId = trim(sDivId); var sReturnValue = trim(ReturnValue.substring(0,1)); switch(sReturnValue){ case '1': alert("未登录,请先登录!"); break; case '2': alert("无效的ID参数"); break; case '3': alert("输入的数量不能低于1"); break; case '4': alert("无效参数!"); break; case '5': alert("抱歉,您不能对自己操作!"); break; case '6': alert("抱歉,您的财富不够!"); break; case '7': alert("送鲜花或砸鸡蛋的数目不得超过1000!"); break; case '8': alert("送鲜花成功!"); //实时更新当前日记的鲜花或鸡蛋数量; var url ="ProcessInterface_FlowerEgg.php?user="+UserName+"&action=GetNewCount&type=flower&diary_id="+sDivId; var DivName='flower'+sDivId; LoadXMLHTTP(url,DivName); break; case '9': alert("砸鸡蛋成功!"); //实时更新当前日记的鲜花或鸡蛋数量; var url ="ProcessInterface_FlowerEgg.php?user="+UserName+"&action=GetNewCount&type=egg&diary_id="+sDivId; var DivName='egg'+sDivId; LoadXMLHTTP(url,DivName); break; } } //--------------------------------------------------------------------------------------; //Create:Jonava:2006-10-31 //Function:ProcessInterface_SaveComment(); //获取客户端表单数据使用AJAX引擎传输数据; function ProcessInterface_SaveComment(ObjId,UserName){ if(document.all("CommentForms").disabled == true){ alert("正在提交数据,请勿重复提交..."); return false; } var strPostValue = GetQuestQuery(ObjId); var sObjId = ObjId; var sUserName = UserName; var url = "ProcessInterface_Comment.php?user="+sUserName+"&diary_id="+sObjId+"&action=Save"; PostXMLHTTP(url,sObjId,strPostValue,sUserName); } //--------------------------------------------------------------------------------------; //Create:Jonava:2006-10-31 //Function:PostXMLHTTP(); //用于处理留言或评论的数据异步传送; function PostXMLHTTP(URL,ObjName,sQueryString,sUserName){ var QueryString = sQueryString; var XMLHttp = InitAjax(); var sObjName = "CommentForms"; var sCommentId = ObjName; var sUserName = sUserName; XMLHttp.open("POST",URL,true); //异步 XMLHttp.setRequestHeader('charset','GBK'); XMLHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded;'); XMLHttp.onreadystatechange = StateChangeProcess; XMLHttp.Send(QueryString); function StateChangeProcess(){ if(XMLHttp.readyState == 4 && XMLHttp.Status == 200){ ReturnValue = XMLHttp.responseText; PopMessageCommentWindow(ReturnValue,sObjName,sCommentId,sUserName); }else if(XMLHttp.readyState == 1){ var sObjId = "document.CommentForms"; var oObj = sObjId; document.all(sObjName).disabled="true"; oObj.f_DiaryComment_Memo.disabled="true"; document.all('SubmitComment').value="正在提交..."; } } } //--------------------------------------------------------------------------------------; //Create:Jonava:2006-10-31 //Function:GetQuestQuery(); //获取客户端表单数据; function GetQuestQuery(ObjId){ var sObjId = "document.CommentForms"; var oObj = eval(sObjId); //alert(sObjId); var strPostVlaue = ""; var f_DiaryComment_CommentObjId,f_DiaryComment_ObjTitle,f_DiaryComment_AddDate,f_DiaryComment_Memo,VKey; f_DiaryComment_CommentObjId = oObj.f_DiaryComment_CommentObjId.value; f_DiaryComment_ObjTitle = oObj.f_DiaryComment_ObjTitle.value; f_DiaryComment_AddDate = oObj.f_DiaryComment_AddDate.value; f_DiaryComment_Memo = oObj.f_DiaryComment_Memo.value; var re_str; re_str = /\+/g; f_DiaryComment_ObjTitle = f_DiaryComment_ObjTitle.replace(re_str,"+"); f_DiaryComment_Memo = f_DiaryComment_Memo.replace(re_str,"+"); strPostVlaue = "f_DiaryComment_CommentObjId="+f_DiaryComment_CommentObjId+"&f_DiaryComment_ObjTitle="+f_DiaryComment_ObjTitle+"&f_DiaryComment_AddDate="+f_DiaryComment_AddDate+"&f_DiaryComment_Memo="+f_DiaryComment_Memo; return strPostVlaue; } //--------------------------------------------------------------------------------------; //Create:Jonava:2006-10-31 //Function:PopMessageCommentWindow(ReturnValue); //获取客户端表单数据; function PopMessageCommentWindow(ReturnValue,sObjName,sCommentId,sUserName){ var sDivId = trim(sDivId); var sReturnValue = trim(ReturnValue.substring(0,1)); var sObjName = sObjName; //alert (sReturnValue); switch(sReturnValue){ case '1': alert("未登录,请先登录!"); callback(sObjName,sCommentId,0); break; case '2': alert("您未设置形像照,请到您的相册上传照片,并设为形象照后再发布留言或评论"); callback(sObjName,sCommentId,0); window.open('/User/SetSelfPhoto.php'); break; case '3': alert("输入的内容中含有禁用字:如不文明用语、垃圾广告或其它非法信息"); callback(sObjName,sCommentId,0); break; case '4': alert("留言或评论字数不能小于3或者大于125个字符!"); callback(sObjName,sCommentId,0); break; case '5': alert("对不起,对方设置只有VIP才能发表留言或评论,请升级VIP"); callback(sObjName,sCommentId,0); top.location='/help/vip.php'; break; case '6': alert("对不起,对方拒绝任何人发表留言或评论"); callback(sObjName,sCommentId,0); break; case '7': alert("对不起,只有VIP的用户才可以发表悄悄话!"); callback(sObjName,sCommentId,0); top.location='/help/vip.php'; break; case '8': alert("对不起,对方已将你列入黑名单,无法发表留言或评论!"); callback(sObjName,sCommentId,0); break; case '9': alert("您的评论已成功提交!"); callback(sObjName,sCommentId,1); ReNewCommentList(sCommentId,sUserName); var commentCount = document.all('comment'+sCommentId).innerText; document.all('comment'+sCommentId).innerText = trim(parseInt(commentCount)+ 1); break; case '0': alert("来源参数错误! 请勿从以外的网站提交数据!"); callback(sObjName,sCommentId,0); break; case 'a': alert("请勿提交无关评论"); callback(sObjName,sCommentId,0); break; } } //更新评论框状态 function callback(sObjName,sCommentId,State){ var sObjName = sObjName; //var sObjId = "document.CommentForms"; var oObj = "document.CommentForms" var sState = State; document.all(sObjName).disabled=false; document.all('f_DiaryComment_Memo').disabled=false; if(sState==1){ document.all('f_DiaryComment_Memo').value=""; } document.all(sObjName).value=" 提交评论 "; } //更新评论列表 function ReNewCommentList(sCommentId,sUserName){ var URL; var thisURL = (document.URL); obj=thisURL.match(/showdiarys/g); URL = "vip_DiaryGetCommentList.php?user="+sUserName+"&DispType=All&diary_id="+sCommentId; if(obj!=null){ URL = "vip_DiaryGetCommentList.php?user="+sUserName+"&diary_id="+sCommentId; } LoadXMLHTTP(URL,'Diary_Comment_'+sCommentId); } //加载评论发布框; function showCommentForms(sCommentId,sCommentTitle,sCommentOnwer,sTextArea){ var DivName = "DIV_"+sCommentId; if(document.all(DivName).style.display=='none' || document.all(DivName).style.display==''){ document.all(DivName).style.display='inline'; var url="ProcessInterface_CommentForms.php?user="+sCommentOnwer+"&CommentObjId="+sCommentId+"&ObjTitle="+sCommentTitle+"&CommentTextArea="+sTextArea; LoadXMLHTTP(url,DivName); }else{ document.all(DivName).style.display='none'; document.all(DivName).innerHTML = ""; } } //计算评论留言等字符长度 function CountStringLength(max){ str = document.all('f_DiaryComment_Memo').value; if(str.length>max || str.length < 3) { alert("提示:输入的字符不能少于3个或不能多于 "+max+" 个!"); document.all('f_DiaryComment_Memo').value=str.substring(0,max-10); return false; } return true; } function CountStringLengthG(max){ str = document.all('f_Guest_Memo').value; if(str.length>max || str.length < 3) { alert("提示:输入的字符不能少于3个或不能多于 "+max+" 个!"); document.all('f_Guest_Memo').value=str.substring(0,max-10); return false; } return true; } //CTRL + ENTER函数 function SubmitCommentForms(obj, field) { if (event.ctrlKey && event.keyCode == 13) { obj.form.submit(); if (document.getElementById(field)) { document.getElementById(field).value='正在发送...'; document.getElementById(field).disabled=true; } } } //下载表情 function DownloadFace(){ var moodListObj = document.getElementById("face"); if(moodListObj.innerText == ''){ var URL; URL = "ProcessInterface_showface.php"; LoadXMLHTTP(URL,'face'); } if (moodListObj) { moodListObj.style.display = (moodListObj.style.display == "inline") ? "none" : "inline"; //moodListObj.style.display = 'inline'; moodListObj.style.top = getIE('font-face','top') +21 + "px"; moodListObj.style.left = getIE('font-face','left') + "px"; } if(document.all('font-face')){ document.all('font-face').src='/images/ubbeditor/face_click.gif'; } } function getIE(t,z){ e=document.getElementById(t); var t=e.offsetTop; var l=e.offsetLeft; while(e=e.offsetParent){ t+=e.offsetTop; l+=e.offsetLeft; } if(z=='top'){ return t; }else if(z=='left'){ return l; } }