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

📄 chat.js

📁 是一个基于ajax的聊天室!实现了在线聊天
💻 JS
字号:
var nowNum = "m"
var xmldoc
var colorNum = 1
//定义ID
function $() {
  return document.getElementById(arguments[0])
}
function $f() {
  return document.getElementsByName(arguments[0])[0]
}
function createxmldoc(){
	if(window.XMLHttpRequest){
		xmldoc = new XMLHttpRequest();
		if(xmldoc.overrideMimeType){
				xmldoc.overrideMimeType("text/xml");
		}
	}else if(window.ActiveXObject){
		try{
			xmldoc = new ActiveXObject("Msxml4.XMLHTTP");
		}catch(e){
			try{
				xmldoc = new ActiveXObject("Msxml3.XMLHTTP");
			}catch(e){
				try{
					xmldoc = new ActiveXObject("Msxml2.XMLHTTP");
				}catch(e){
					try{
						xmldoc = new ActiveXObject("Microsoft.XMLHTTP");
					}catch(e){}
				}
			}
		}
	}
	if(!xmldoc){
		return false;
	}
}
function createQueryString(names){
	var conts = $f(names).value
	if(conts != ""){
		if(conts == "clear"){
			$("chatmain").innerHTML = ""
			clean()
			focs()
			return false
		}else{
			return encodeURI(conts)
		}
	}else{
		return false
	}
}
function doUsingGet(){
	xmldoc = false
	createxmldoc()
	var url = "chat.jsp?clien="+nowNum+"&timeStamp="+new Date().getTime();
	xmldoc.open("GET",url,true);
	xmldoc.onreadystatechange = CheckState;
	xmldoc.setRequestHeader("Content-Type","text/xml;charset=utf-8;");
	xmldoc.send(null);
}
function doUsingPost(){
	createxmldoc()
	if(createQueryString("inputs")){
		if(createQueryString("named")){
			var named = "&named="+createQueryString("named")
		}else{
			var named = ""	
		}
		if(createQueryString("inputs") == "cls"){
			nowNum = "m"
		}
		var url = "chat.jsp?clien="+nowNum+"&cont="+createQueryString("inputs")+named+"&timeStamp="+new Date().getTime();
		xmldoc.open("GET",url,true);
		xmldoc.onreadystatechange = CheckState;
		xmldoc.setRequestHeader("Content-Type","text/xml;charset=utf-8;");
		xmldoc.send(null);
		addChat($f("inputs").value);
		clean()
		focs()
	}else{
		$("loadifo").innerHTML = "请输入对话内容!"	
		focs()
	}
}
function CheckState(){
	if(xmldoc.readyState == 4){
		if(xmldoc.status == 200){
			results()
		}
		else{
			$("loadifo").innerHTML = "错误"+xmldoc.status;
			focs()
		}
	}
}
function results(){
	resXml()
}
function resXml(){
	var res = xmldoc.responseXML.documentElement;
	var resLen = res.getElementsByTagName("items").length
	if(getTag(res,0,"num") != nowNum){
		nowNum = getTag(res,0,"num")
		for(var i=0; i<resLen; i++){
			if(colorNum%3 == 0){
				color = "#f1f1f1"
			}else if(colorNum%3 == 1){
				color = "#dfdfdf"
			}else if(colorNum%3 == 2){
				color = "#c7c7c7"
			}
			colorNum++
			var useName = decodeURI(getTag(res,i,"name"))
			var useMag = decodeURI(getTag(res,i,"conts"))
			var useIp = getTag(res,i,"ip")
			if(nowNum != "0" && useMag != ""){
				if(useName != ""){
					var lis = "<div class='msgs' style='background:" + color + "'>["+ useIp + "] " + useName + "说:</div>" + useMag
				}else{
					var lis = "<div class='msgs' style='background:" + color + "'>["+ useIp + "] 说:</div>" + useMag
				}
			}else{
				var lis = "<div class='msgs' style='background:" + color + "'>["+ useIp + "]</div>进入聊天室!"
			}
			$("chatmain").innerHTML = lis + "<br />" + $("chatmain").innerHTML;
		}
		innerSize()
	}
}
function getTag(response,i,objTagName){
	try{
		var nodeV = response.getElementsByTagName(objTagName)[i].firstChild.nodeValue;
	}catch(e){
		var nodeV = ""
	}
	return nodeV;
}
var overs
function innerSize(){
	if(overs != 1){
		$("chatmain").scrollIntoView(false)	
	}
}
window.onload = function(){
	$("outs").onmousedown = function(){
		overs = 1
	}
	$("outs").onmouseout = function(){
		overs = 0
		focs()
	}
	$f("inputs").onkeydown = function(e){
		if(document.all){
			var Keys = event.keyCode;	
		}else{
			var Keys = e.which;
		}
		if(Keys == "38"){
			preChat()
		}else if(Keys == "40"){
			nextChat()
		}else if(event.ctrlKey && Keys == "13"){
			doUsingPost()
		}else if(event.ctrlKey && Keys == "46"){
			clean()
		}
	}
}
setInterval("doUsingGet()",1000)

⌨️ 快捷键说明

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