⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.js

📁 语言:Javascript(完全抛弃了VBScript) 数据库:Access2000以上 特点:ASP->XML + XLST->HTML 对DB访问做了简单封装
💻 JS
字号:

// 在线用户列表的面板ID
var ID_onlineUserList = "onlineUserListBox"

// 欢迎窗口ID
var ID_welcomeBox = "welcomeBox";

// Refresh窗口ID
var ID_refresh = "FrmRefresh";

var scrollBarControl = new scrollBar();

// 为主页刷新按钮 保存 最后聊天发言时间
lastSayTime = "0";

//====================================================================================
// 页面载入后初始化操作
//====================================================================================
function initProc()
{
	// 启动滚动面板(网站通告)
	//scrollBarControl.addBar("noticeBox", 260, 95, 50, "up");
	scrollBarControl.runScrollBars();

	// 定时刷新页面
	refresh();
	window.setInterval("refresh()", refreshInterval);
}

//====================================================================================
//  读取最新记录
//====================================================================================
function refresh()
{
	var frameRefresh = document.frames(ID_refresh);
	if (frameRefresh==null || frameRefresh==self) return;
	frameRefresh.location = "refresh.asp?lastsaytime=" + lastSayTime 
		+ "&tmp=." + Date.parse(new Date());
}

//====================================================================================
//  聊天内容检查
//====================================================================================
var PrivChatMsg = "";
function PostChat(FormMsg){
	var ChatMsg = FormMsg.Msg.value;
	if (ChatMsg!="" && ChatMsg!=PrivChatMsg){
		PrivChatMsg = ChatMsg;
		
		// 去除特殊符号
		var re = new RegExp("&", "g");
		ChatMsg = ChatMsg.replace(re, "&")
		var re = new RegExp("<", "g");
		ChatMsg = ChatMsg.replace(re, "&lt;")
		
		showMessage("<br><span style='font-weight:bold; color: #CC9900'>"
			+ "[" + userName + "]&nbsp;" 
			+ ChatMsg 
			+ "</span>"
			+ "<span style='font-weight:none; font-size:9px'>"
			+ "&nbsp;&nbsp;(本地时间:" + (new Date()).toLocaleString() + ")"
			+ "</span>");
		FormMsg.submit();
		FormMsg.Msg.value = "";
	}
	
	FormMsg.Msg.focus();
	return false;
}

//====================================================================================
// 输出欢迎信息
//====================================================================================
function writeWelcome()
{
	var strWelcome = userName + "您好!" + "<BR>" 
		+ "您上次登录时间是:" + previousLoginDate + "<BR>"
		+ "这是您第" + loginTimes + "次登录,欢迎您!" + "<BR>"
		+ "<BR>"
		+ (newPersonalMessageCount >0 
			? "您有<span class='hintNumber'>" + newPersonalMessageCount+"<\/span>条消息未读"
			:"您没有新消息"
		) + "<BR>"
		+ "自上次登录"
		+ (newPublicMessageCount > 0
			?"有<span class='hintNumber'>" + newPublicMessageCount + "<\/span>条新留言"
			:"没有新留言添加,<a target=\"_blank\" href=\"publicMessagePost.asp\">您来留言吧!</a>"
		) + "<BR>"
		+ (newPhotoCount > 0
			?"有<span class='hintNumber'>" + newPhotoCount + "<\/span>张新相片上传"
			:"没有新相片上传"
		) + "<BR>"
		+ (lastUpdateUserCount > 0
			?"有<span class='hintNumber'>" + lastUpdateUserCount + "<\/span>位同学更新了资料"
			:"没有同学更新资料"
		);

	document.write("<table width='100%' border='0' cellspacing='0' cellpadding='0' style='height:100%'>"
		+ "<tr><td valign='bottom'>"
		+ strWelcome
		+ "</td></tr>"
		+ "</table>"
		);
}

//====================================================================================
// 生日公历/农历切换
//====================================================================================
function swapview()
{
	var isNL = (document.all.btn_gl.style.cursor=="hand");
	// ==list==
	document.all.trNL.style.display = (!isNL ? "" : "none");
	document.all.trGL.style.display = (isNL ? "" : "none");
	// ==buttons==
	document.all.btn_gl.src = xslPath + "/imgs/born_gl_" + (isNL ? "a" : "d") + ".gif";
	document.all.btn_nl.src = xslPath + "/imgs/born_nl_" + (!isNL ? "a" : "d") + ".gif";
	document.all.btn_gl.style.cursor = (isNL ? "" : "hand");
	document.all.btn_nl.style.cursor = (!isNL ? "" : "hand");
	document.all.btn_gl.onclick = (isNL ? null : swapview);
	document.all.btn_nl.onclick = (!isNL ? null : swapview);	
}


//====================================================================================
// 将给定字符串的的占位符替换成数组中对应的值
// 占位符: {0},{1}.....{n}
//====================================================================================
String.prototype.format = function()
{
	var result = this;
	for(var i=0; i<arguments.length; i++)
	{
		var re = new RegExp("\\{" + i + "}", "g");
		result = result.replace(re, arguments[i]);
	}
	
	return result;
}

//====================================================================================
//====================================================================================
//====================================================================================
// 实时刷新,在线列表更新,新信息,新留言提示
//====================================================================================

// 当前在线用户列表
var currentOnlineUsers = new Array();
// 是否载入完成标志
var isInited = false;

//====================================================================================
// 返回list1中,与list2非交集部分
//     (list1 中未出现在 list2 中的成员数组)
// 输入: list1,list2 数组(jid, name, jid, name....)
// 输出: 数组(jid, name, jid, name....)
//====================================================================================
function diffArray(list1, list2)
{
	// 如果list1没有成员,直接返回空数组
	if (list1.length==0) return new Array();
	
	var result = new Array();
	var pos = 0;
	
	for(i=0; i<list1.length; i+=3)
	{
		var jid = list1[i];
		var name = list1[i + 1];
		var sex = list1[i + 2];
		var isExisted = false;
		for(j=0; j<list2.length; j+=3)
		{
			if (jid == list2[j])
			{
				isExisted = true;
				break;
			}
		}
		
		// 如果在list2中不存在
		if (!isExisted)
		{
			result[pos++] = jid;
			result[pos++] = name;
			result[pos++] = sex;
		}
	}
	
	return result;
}

//====================================================================================
// 在欢迎窗口显示信息
//    输入:string (登录/离线用户,新消息,聊天内容...)
//====================================================================================
function showMessage(msg)
{
	var msgBox = document.getElementById(ID_welcomeBox);
	msg = msgBox.innerHTML + msg;
	msgBox.innerHTML = msg;
	msgBox.scrollTop = msgBox.scrollHeight;
}

//====================================================================================
// 检查新在线列表,对比原在线列表
//     找出新登录用户与离线用户
//     重新显示在线列表
//====================================================================================
function updateOnlineUsersAndShowChat(newOnlineUsers, chatWords, currentTime)
{
	// 新登录用户列表
	var leaves = new Array();
	// 离线用户列表
	var adds = new Array();
	// 若不是初次加载,检查上下线用户
	if (isInited)
	{
		leaves = diffArray(currentOnlineUsers, newOnlineUsers);
		adds = diffArray(newOnlineUsers, currentOnlineUsers);
	}

	// 如果网页刚下载,或是在线用户有变更
	// 更新网面上的在线用户列表
	if (adds.length>0||leaves.length>0||!isInited)
	{
		var userListString = "";
		var userListHTML = "<td><img src='" + xslPath + "/imgs/lst-{0}.gif' width='18' height='17'></td>"
			+ "<td onClick='selectAction({1})' style='padding-right:5px; padding-top:8px; color:white; cursor:hand' nowrap>{2}</td>";
		
		var userCount = 1;
		for(var i=0; i<newOnlineUsers.length; i+=3)
		{
			var jid = newOnlineUsers[i];
			var name = newOnlineUsers[i + 1];
			var sex = newOnlineUsers[i + 2];
			var icon = (sex ? "boy" : "girl");
			var paras = "\"" + jid + "\",\"" + name + "\"";
			userListString += userListHTML.format(icon, paras, name);
			userCount++
		}

		userListString = "<table cellpadding=0 cellspacing=0><tr>"
			+ userListString
			
			+ "<td style='color:#004080; font-weight:bold; padding-top:5px; padding-right:28px' nowrap>[共" 
			+ userCount + "人]</td>"
			
			+ "</tr></table>";
			
		var listBox = document.getElementById(ID_onlineUserList);
		listBox.innerHTML = userListString;
		
		currentOnlineUsers = newOnlineUsers;
		if (!isInited)
		{
			isInited = true;
		}
		else
		{
			scrollBarControl.removeBar(ID_onlineUserList);
		}
		scrollBarControl.addBar(ID_onlineUserList, 593, 22, 50, "left");
		scrollBarControl.runScrollBars();
		
	}

	// 新上线用户通知
	for(var i=0; i<adds.length; i+=3)
	{
		var name = adds[i + 1];
		var sex = adds[i + 2];
		var icon = (sex ? "boy" : "girl");
		var msg = "<br><img src='" + xslPath + "/imgs/lst-{0}.gif' width='18' height='17'>{1}来了... ({2})";
		msg = msg.format(icon, name, currentTime);
		showMessage(msg);
	}
	
	// 显示聊天内容
	showMessage(chatWords);
	
	// 下线用户通知
	for(var i=0; i<leaves.length; i+=3)
	{
		var name = leaves[i + 1];
		var sex = leaves[i + 2];
		var icon = (sex ? "boy" : "girl");
		var msg = "<br><img src='" + xslPath + "/imgs/lst-{0}.gif' width='18' height='17'>{1}走了... ({2})";
		msg = msg.format(icon, name, currentTime);
		showMessage(msg);
	}
}

//====================================================================================
//  检查新ID号
//====================================================================================
function checkNewID(newPersonalMessageID, newPublicMessageID, newPhotoID, currentTime)
{
	// 是否有个人新留言
	if (newPersonalMessageID > mem_PersonalMessageID)
	{
		var msg = "<br><img src='" + xslPath + "/imgs/f_hot.gif' width='18' height='12'>您有新消息!";
		showMessage(msg + currentTime);
		mem_PersonalMessageID = newPersonalMessageID;
	}
	
	// 是否有班级新留言
	if (newPublicMessageID > mem_PublicMessageID)
	{
		var msg = "<br><img src='" + xslPath + "/imgs/f_hot.gif' width='18' height='12'>班级留言有新内容添加!";
		showMessage(msg + currentTime);
		mem_PublicMessageID = newPublicMessageID;
	}

	// 是否有上传新相片
	if (newPhotoID > mem_PhotoID)
	{
		var msg = "<br><img src='" + xslPath + "/imgs/f_hot.gif' width='18' height='12'>班级相册有新相片上传!";
		showMessage(msg + currentTime);
		mem_PhotoID = newPhotoID;
	}
}

function selectAction(jid, name)
{
	window.open("userDetail.asp?id=" + jid);
}

function showUserDropList(usrlist)
{
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -