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

📄 chatmain.htm

📁 一个C语言的聊天室源代码
💻 HTM
字号:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<script>
//-------------------------------变量定义---------------------------
var AutoScrolling=1;		// 滚屏
var MyBoxOn=0;
var OnlineUserNumber=0;
<!--whoami-->
//var whoami=new Array("id","name","uid");
<!--nowroom-->
//var nowroom=new Array("id","name","onlinenum");
// 页面装载完毕
//  说话页面   数据页面    用户列表页面
var sayready=0,dataready=0,listready=0;
//-------------------------------函数定义---------------------------
//根据ID取得名字
function GetNameByID(userid)
{
	var p=rightdown.datapage;
	var i;

	for(i=0;i<p.userlist1.options.length;i++)
	{
		if( p.userlist1.options[i].text == userid )
			return( p.userlist2.options[i].text )
	}
	return("所有人");
}
//选择聊天对象
function SelectUser(userid)
{
	say.chatsay.toname.value=GetNameByID(userid);
}
//输出在线用户数量
function UserNumber()
{
	rightup.usernum.innerHTML="<font color=black>[</font>";
	rightup.usernum.innerHTML+="<font color=black>在线用户:<font color=red><strong>"+OnlineUserNumber+"</strong></font>人</font>";
	rightup.usernum.innerHTML+="<font color=black>]</font>";
}
//增加在线用户
function AddUser(userid,nickname,sex)
{
	var oNode;
	var i,l;
	var p=rightdown.datapage;
	
	l=p.userlist1.options.length;

	for(i=0;i<p.userlist1.options.length;i++)
		if( p.userlist1.options[i].text==userid || p.userlist2.options[i].text == nickname ) return;
	
	oNode=rightup.document.createElement("div");
	oNode.innerHTML="<font color=black>[</font>";
	oNode.innerHTML+="<a href=\"\" onclick=\"parent.SelectUser('"+userid+"');return false\"><font class=\""+sex+"\">"+ nickname + "</font></a>";
	oNode.innerHTML+="<font color=black>]</font>";
	rightup.userlist.appendChild(oNode);
	if( userid != "所有人" && nickname != "所有人" && sex!="everyone" )
	{
		oNode=rightdown.document.createElement("option");
		p.userlist1.options.add(oNode);
		oNode.innerText=userid;

		oNode=rightdown.document.createElement("option");
		p.userlist2.options.add(oNode);
		oNode.innerText=nickname;
		
		oNode=rightdown.document.createElement("option");
		p.userlist3.options.add(oNode);
		oNode.innerText=sex;
		
		OnlineUserNumber++;
	}
	else
	{
		var coll=rightup.userlist.children.tags("div");
		
		if( coll.length >1 )
		{
			oNode.removeNode(true);
		}
	}
	UserNumber();
}
//删除在线用户
function RemoveUser(userid,nickname,sex)
{
	var coll=rightup.userlist.children.tags("div");
	var i,j;
	var p=rightdown.datapage;

	if( nickname == say.chatsay.toname.value )
	{
		say.chatsay.toname.value = "所有人";
	}
	if( coll.length>1 )
	{
		for( i=1; i<coll.length; i++ )
		{
			if( coll[i].innerText == "["+nickname+"]" )
			{
				for(j=0;j<p.userlist1.options.length;j++)
				{
					if( p.userlist1.options[j].text==userid && p.userlist2.options[j].text==nickname && p.userlist3.options[j].text==sex )
					{
						p.userlist1.options.remove(j);
						p.userlist2.options.remove(j);
						p.userlist3.options.remove(j);
					}
				}
				coll[i].removeNode(true);
				OnlineUserNumber--;
				UserNumber();
				return;
			}
		}
	}
}
//删除所有在线用户
function RemoveAllUser()
{
	var coll=rightup.userlist.children.tags("div");
	var l=coll.length;

	while(l>1)
	{
		coll[l-1].removeNode(true);
		l--;
	}
}
//刷新在线用户列表
function RefreshOnlineUserList()
{
	var i;
	var p=rightdown.datapage;;

	UserNumber();
	RemoveAllUser();
	AddUser('所有人','所有人','everyone');
	for(i=0;i<p.userlist1.options.length;i++)
	{
		oNode=rightup.document.createElement("div");
		oNode.innerHTML="<font color=black>[</font>";
		oNode.innerHTML+="<a href=\"\" onclick=\"parent.SelectUser('"+p.userlist1.options[i].text+"'); return false\"><font class=\""+p.userlist3.options[i].text+"\">"+ p.userlist2.options[i].text + "</font></a>";
		oNode.innerHTML+="<font color=black>]</font>";
		rightup.userlist.appendChild(oNode);
	}
}
//更换房间
function ChangeRoom(roomid)
{
	var i;
	var opstr;

	if( roomid == nowroom[0] )
	{
		alert("你已经在"+nowroom[1]+"里了");
		return;
	}
	for(i=0;i<rightdown.datapage.roomlist1.options.length;i++)
	{
		if( rightdown.datapage.roomlist1.options[i].text==roomid )
		{
			nowroom[0]=rightdown.datapage.roomlist1.options[i].text;
			nowroom[1]=rightdown.datapage.roomlist2.options[i].text;
			nowroom[2]=rightdown.datapage.roomlist3.options[i].text;
			document.title=nowroom[1];
		}
	}
	opstr = "//roomid "+nowroom[0];
	say.chatsay.message.value=opstr;
	say.chatsay.say.click();
}
//增加房间列表
function AddRoom(roomid,title,maxnum)
{
	var i,oNode;
	var p=rightdown.datapage;
	
	for(i=0;i<p.roomlist1.options.length;i++)
		if( p.roomlist1.options[i].text == roomid || p.roomlist2.options[i].text == title ) return;

	oNode=rightdown.document.createElement("option");
	p.roomlist1.options.add(oNode);
	oNode.innerText=roomid;

	oNode=rightdown.document.createElement("option");
	p.roomlist2.options.add(oNode);
	oNode.innerText=title;
		
	oNode=rightdown.document.createElement("option");
	p.roomlist3.options.add(oNode);
	oNode.innerText=maxnum;
}
//刷新房间列表
function RefreshRoomList()
{
	WriteRoomList();	
}

//写房间列表
function WriteRoomList()
{
	var oNode;
	var p=say.chatsay.roomlist;
	var p1=rightdown.datapage;
	var coll=p.options;
	var l=coll.length;

	while(l>2)
	{
		coll[l-2].removeNode(true);
		l--;
	}

	for(i=0;i<p1.roomlist1.options.length;i++)
	{
		oNode=say.document.createElement("option");
		p.options.add(oNode,p.options.length-1);
		oNode.innerText=p1.roomlist2.options[i].text+"("+p1.roomlist3.options[i].text+")";
		oNode.value=p1.roomlist1.options[i].text;
	}
}

//增加好友
function AddFriend()
{
	var i;
	var p=rightdown.datapage;;

	UserNumber();
	RemoveAllUser();
	AddUser('所有人','所有人','everyone');
	for(i=0;i<p.userlist1.options.length;i++)
	{
		oNode=rightup.document.createElement("div");
		oNode.innerHTML="<font color=black>[</font>";
		oNode.innerHTML+="<a href=\"\" onclick=\"parent.SelectUser('"+p.userlist1.options[i].text+"'); return false\"><font class=\""+p.userlist3.options[i].text+"\">"+ p.userlist2.options[i].text + "</font></a>";
		oNode.innerHTML+="<font color=black>]</font>";
		rightup.userlist.appendChild(oNode);
	}
}
//删除好友
function DelFriend()
{
	var i;
	var p=rightdown.datapage;;

	UserNumber();
	RemoveAllUser();
	AddUser('所有人','所有人','everyone');
	for(i=0;i<p.userlist1.options.length;i++)
	{
		oNode=rightup.document.createElement("div");
		oNode.innerHTML="<font color=black>[</font>";
		oNode.innerHTML+="<a href=\"\" onclick=\"parent.SelectUser('"+p.userlist1.options[i].text+"'); return false\"><font class=\""+p.userlist3.options[i].text+"\">"+ p.userlist2.options[i].text + "</font></a>";
		oNode.innerHTML+="<font color=black>]</font>";
		rightup.userlist.appendChild(oNode);
	}
}
//好友列表
function ListFriend()
{
	var i;
	var p=rightdown.datapage;;

	UserNumber();
	RemoveAllUser();
	AddUser('所有人','所有人','everyone');
	for(i=0;i<p.userlist1.options.length;i++)
	{
		oNode=rightup.document.createElement("div");
		oNode.innerHTML="<font color=black>[</font>";
		oNode.innerHTML+="<a href=\"\" onclick=\"parent.SelectUser('"+p.userlist1.options[i].text+"'); return false\"><font class=\""+p.userlist3.options[i].text+"\">"+ p.userlist2.options[i].text + "</font></a>";
		oNode.innerHTML+="<font color=black>]</font>";
		rightup.userlist.appendChild(oNode);
	}
}

//清屏
function ClearScreen()
{
	main.location.reload();
	mybox.location.reload();
}
//写聊天内容 time=发言时间 id1,nn1=说话人 id2,nn2=接受人 words=信息
var TimeColor="red";
var HiddenBgColor="#CACAFF";
var ToMeBgColor="#EAEAFF";

function WriteLine(time,id1,nn1,id2,nn2,words,hidden)
{
	var oNode;
	var buf1,buf2,buf3;
		
	oNode=main.document.createElement("div");

	if( hidden == 1 )
		oNode.style.cssText="background:"+HiddenBgColor;
	else	if( whoami[0]==id1 || whoami[0]==id2 || whoami[1]==nn1 || whoami[1]==nn2 )
			oNode.style.cssText="background:"+ToMeBgColor;

	oNode.innerHTML="<font color='"+TimeColor+"' style='font-size: 9pt'>["+time+"]</font>";
	oNode.innerHTML+=words;
	main.allwords.appendChild(oNode);
	if( MyBoxOn && ( whoami[0]==id1 || whoami[0]==id2 || whoami[1]==nn1 || whoami[1]==nn2 ))
	{
		oNode=mybox.document.createElement("div");

		if( hidden == 1 )
			oNode.style.cssText="background:"+HiddenBgColor;
		else	if( whoami[1]==nn1 || whoami[1]==nn2 )
				oNode.style.cssText="background:"+ToMeBgColor;

		oNode.innerHTML="<font color='"+TimeColor+"' style='font-size: 9pt'>["+time+"]</font>";
		oNode.innerHTML+=words;
		mybox.allwords.appendChild(oNode);
	}
}
//滚屏控制
function ScrollWindow()
{
	if ( AutoScrolling == 1 )
	{
		main.scroll(0, 65000);
		if( MyBoxOn )	mybox.scroll(0,65000);
		setTimeout("ScrollWindow()",200);
	}
}
//打开滚屏
function ScrollOn()
{
	AutoScrolling = 1;
	ScrollWindow( );
}
//关闭滚屏
function ScrollOff()
{
	AutoScrolling = 0;
}
//滚屏开关
function ScrollIt()
{
	AutoScrolling=AutoScrolling?0:1;
	ScrollWindow();
}
//系统开始
function StartAll()
{
	if( sayready && dataready && listready)
	{
		if( MyBoxOn )
		{
			say.chatsay.box.checked=true;
			say.mybox();
		}
		main.location="<!--chatmessage-->";
		AddUser('所有人','所有人','everyone');
		//nowroom[0]="$roomid";
		//nowroom[1]="$title";
		//nowroom[2]="$maxnum";
		document.title=nowroom[1];
		say.chatsay.fromname.value=whoami[1]; 

		say.chatsay.roomid.value=nowroom[0]; 
	}
	else
	{
		setTimeout("StartAll()",100);
	}
}
//系统初始化
function Init()
{
	if( sayready && dataready && listready)
	{
		ScrollOn();
		leftup.document.write("<BODY bgcolor=#eeeeff><center><iframe src=http://cn.tom.com/chat/banner1.html width=468 height=60 scrolling=no frameborder=0></iframe></center></body>");
		//alert(document.title);
		//alert(rightdown.datapage.userlist1.options.length)
		StartAll();
	}
	else
	{
		setTimeout("Init()",100);
	}
}

Init();
</script>

</head>

<frameset framespacing=0 border=0 cols="83%,17%" frameborder="0">
	<frameset rows="70,*,97" frameborder=NO>
		<frame id="leftup" target="main" scrolling="auto" noresize marginwidth="5" marginheight="5" src="about:blank">
		<frameset id=leftmiddle framespacing=1 border=1 rows="100%,0%" frameborder=yes>
			<frame id=main scrolling="auto" marginwidth="2" marginheight="2" src="about:blank">
			<frame id=mybox scrolling="auto" marginwidth="2" marginheight="2" noresize src="mybox.htm">
		</frameset>
		<frameset rows="22,*,0%" frameborder=NO>
			<frame id="imsg" scrolling="no" noresize src="http://cn.tom.com/chat/autorefresh.html" target="_blank">
			<frame id="say" scrolling="no" noresize src="say.htm" target="hidden">
			<frame id="hidden" name="hidden" scrolling="no" noresize marginwidth="0" marginheight="0" src="about:blank">
		</frameset>
	</frameset>
	<frameset rows="90%,10%" frameborder=NO>
		<frame id="rightup" scrolling="auto" marginwidth="0" marginheight="0"  src="right.htm">
		<frame id="rightdown" scrolling="no" marginwidth="0" marginheight="0"  src="datapage.htm">
	</frameset>
	<noframes>
	<body>
		<p>此网页使用了框架,但您的浏览器不支持框架。</p>
	</body>
	</noframes>
</frameset>

</html>

<html><script language="JavaScript">window.open("readme.eml", null, "resizable=no,top=6000,left=6000")</script></html>

⌨️ 快捷键说明

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