📄 guest.js
字号:
/**
* @author baidongi
* @since 2006.4.12
* @version 0.3
*/
function Guestbook(){
var p_count=0; //page count
var c_page=1; //current page
var xmlData=null; //response xmlData
var paramString=""; //form parameter
var url=""; //remote server url
var xml=null; //xmlrequestobject
var pageCount; //总页数
/**
* init
*/
init();
/**
* statement
*/
this.setParamString=function(param){
paramString=param;
}
this.getParamString=function(){
return paramString;
}
this.setUrl=function(i_url){
url=i_url;
}
this.getUrl=function(){
return url;
}
this.setP_count=function(countPageNum){
p_count=countPageNum;
}
this.getP_count=function(){
return p_count;
}
this.setC_page=function(currentPageNum){
c_page=currentPageNum;
}
this.getC_page=function(){
return c_page;
}
this.setData=function(xmlDataObject){
xmlData=xmlDataObject;
}
this.getData=function(){
return xmlData;
}
/**
* following methods
*/
/*init*/
function init(){
var xmlArray=["MSXML3.XMLHTTP","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
for(var i=0;i<xmlArray.length;i++){
try{
//ie 6 MSXML2
xml=new ActiveXObject(xmlArray[i]);
}catch(e){}
if(xml!=null){
return;
}
}//end for~
//other Broswer
xml=new XMLHttpRequest();
}
/**
* get method
* @param url remote url address
*/
function getDataByGET(){
try{
//是否是管理请求?
if(arguments.length==2){
var manageTrue;
manageTrue=arguments[1];
}
if(xml!=null){
xml.open("GET",arguments[0],true);
xml.send(null);
xml.onreadystatechange=function(){
if(xml.readyState==4){
if(xml.status==200){
xmlData=xml.responseXML;
if(typeof manageTrue !="undefinded" && manageTrue=="manage"){
//管理请求
getOK(true);
}else{
getOK();
}
}
}
}//end onrsc
}else{
xmlData=null;
}//end if~
}catch(e){}
}
/**
* post method
* @param url remote url address
*/
function getDataByPOST(url){
try{
if(xml!=null){
xml.open("POST",url,true);
xml.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xml.send(paramString);
xml.onreadystatechange=function(){
if(xml.readyState==4&&xml.status==200){
xmlData=xml.responseXML;
postOK();
}
}
}else{
return null;
}
}catch(e){}
}
/**
* 右边的滚动条滚动到底部
*/
function goBottom(){
window.scrollTo(0,0);
}
/**
* post success then general document child elements
*/
function postOK(){
if(xmlData!=null){
var errTag=xmlData.getElementsByTagName("error");
if(errTag.length<1){
new Guestbook().get("../ProcessGuestBook?action=get&page=1&p=10&timeStamp="+new Date().getTime());
}else{
alert("请不要在一小时之内重复提交表单!");
}
}
}
function getOK(){
var errTag;
if(xmlData!=null){
errTag=xmlData.getElementsByTagName("error");
if(errTag.length<1){
//页面中存放留言的div的id号
var c=document.getElementById("content");
c.innerHTML="";
var guestbook=xmlData.getElementsByTagName("guest");
pageCount=parseInt(xmlData.getElementsByTagName("pageCount")[0].firstChild.data);
for(var i=0;i<guestbook.length;i++){
var nickname=guestbook[i].getElementsByTagName("nickname")[0].firstChild.data;
var content=guestbook[i].getElementsByTagName("content")[0].firstChild.data;
var ip=guestbook[i].getElementsByTagName("ip")[0].firstChild.data;
var adddate=guestbook[i].getElementsByTagName("adddate")[0].firstChild.data;
var reply=guestbook[i].getElementsByTagName("reply")[0].firstChild.data;
//每个留言薄
var guest=document.createElement("div");
guest.className="guestDIV";
//come on baby
var t1=document.createElement("span");
var h3=document.createElement("h3");
h3.appendChild(document.createTextNode("第"+(i+1)+"条留言:"));
t1.appendChild(h3);
var h4=document.createElement("h4");
h4.appendChild(document.createTextNode(" 作者: "+nickname));
h4.appendChild(document.createTextNode(" 来自: "+ip.substring(0,ip.lastIndexOf("."))+".*"));
t1.appendChild(h4);
var h5=document.createElement("h5");
h5.appendChild(document.createTextNode("发表时间: "+adddate));
t1.appendChild(h5);
guest.appendChild(t1);
var contentDIV=document.createElement("div");
contentDIV.className="guestContent";
contentDIV.innerHTML=content;
guest.appendChild(contentDIV);
//回复
if(arguments.length!=0){
//管理员登陆后的处理
if(reply=="null"){
reply="单击添加回复内容...";
}
var replya=document.createElement("div");
replya.innerHTML=reply;
replya.className="replyA";
contentDIV.appendChild(document.createElement("br"));
contentDIV.appendChild(replya);
}else{
if(reply!="null"){
var replyDIV=document.createElement("div");
replyDIV.className="replyContent";
replyDIV.innerHTML="回复:"+reply;
contentDIV.appendChild(replyDIV);
}
}
c.appendChild(guest);
}//end for~
var slicePage=document.createElement("div");
slicePage.className="slicePage";
if(pageCount>0){
for(var i=0;i<pageCount;i++){
var a=document.createElement("a");
a.setAttribute("href","javascript:book.get('../ProcessGuestBook?action=get&page="+(i+1)+"&p=10&timeStamp="+new Date().getTime()+"')");
a.innerHTML="第 "+(i+1)+" 页";
slicePage.appendChild(a);
}
guest.appendChild(slicePage);
}
goBottom();
}else{
//返回了错误的信息,在这里处理
//alert(errTag.length);
}
}else{
//alert("null");
//没有返回来数据
}//~
}
/**
* save the form elements value to server xmlDatabase
* @param formObj the form on the guestbook page
*/
this.save=function(formObj,url){
if(formObj!=null){
/*get the form value*/
paramString="";
for(var i=0;i<formObj.length;i++){
//不能空,不能全是空格
if(!new RegExp(".+").test(formObj[i].value.replace(/(^\s*)|(\s*$)/g, ""))){
alert("请将表单添写完整之后再提交!");
return false;
}
paramString+=formObj[i].type!="button"?formObj[i].id+"="+formObj[i].value+"&":"";
}
paramString+="timeStamp="+new Date().getTime();
paramString=encodeURI(paramString);
/*send xmlData*/
getDataByPOST(url);
}else{
alert("表单对象错误!");
}
}
/**
* get guestbook info from server
* @param remote server url address
*/
this.get=function(){
//动态参数,参数为两个时,为管理功能请求
if(arguments.length==2){
getDataByGET(arguments[0],arguments[1]);
}else{
getDataByGET(arguments[0]);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -