📄 main.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, "<")
showMessage("<br><span style='font-weight:bold; color: #CC9900'>"
+ "[" + userName + "] "
+ ChatMsg
+ "</span>"
+ "<span style='font-weight:none; font-size:9px'>"
+ " (本地时间:" + (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 + -