您的当前位置:首页正文

js编写简单的聊天室功能

2020-11-27 来源:尚佳旅游分享网

这个聊天室写的特别简易,比较适合刚开始学习js的同学借鉴,当然,写的不好,也希望诸位大神可以进行批评改正。

聊天室要求:

1.不能发空消息
2.敏感字***显示
3.图片替换 开心,尴尬
4.显示聊天内容和时间
5.每发一条信息,随机显示名称,先把一些名称定义到array里面

<!DOCTYPE html> 
<html> 
 <head> 
 <meta charset="UTF-8"> 
 <title></title> 
 <style type="text/css"> 
 *{ 
 box-sizing: border-box; 
 } 
 .left{ 
 float: left; 
 width: 20%; 
 height: 650px; 
 color: red; 
 border: 1px solid red; 
 border-right: 20px solid cornflowerblue; 
 } 
 .center{ 
 position: relative; 
 float: left; 
 width: 60%; 
 height: 650px; 
 border: 1px solid darkcyan; 
 } 
 .chatList{ 
 width: 100%; 
 height: 500px; 
 overflow-y: scroll; 
 } 
 .bottom{ 
 position: absolute; 
 width: 100%; 
 height: 150px; 
 left: 0; 
 bottom: 0; 
 background: skyblue; 
 } 
 .bottom textarea{ 
 width: 70%; 
 height: 100%; 
 font-size: 18px;; 
 vertical-align: middle; 
 border: 1px solid red; 
 background: blanchedalmond; 
 } 
 .bottom input{ 
 width: 80px; 
 height: 40px; 
 margin-left: 30px; 
 } 
 .right{ 
 float: right; 
 color: #000000; 
 border-right: 0; 
 border-left: 20px solid cornflowerblue; 
 } 
 </style> 
 </head> 
 <body onload="loadTime()"> 
 <div class="left" id="left"> 
 
 </div> 
 <div class="center" id="center"> 
 <div class="chatList" id="chatList"> 
 
 </div> 
 <div class="bottom"> 
 <textarea id="content" name="content" ></textarea> 
 <input type="button" name="send" id="send" value="点击发送" onclick="sendMessage()" /> 
 </div> 
 </div> 
 <div class="left right"> 
 <p>1.不能发空消息</p> 
 <p>2.敏感字***显示</p> 
 <p>3.图片替换 开心,尴尬</p> 
 <p>4.显示聊天内容和时间</p> 
 <p>5.每发一条信息,随机显示名称,先把一些名称定义到array里面</p> 
 </div> 
 
 </body> 
 <script type="text/javascript"> 
// document.getElementById("chatList").scrollHeight; 
 /* 
 添加敏感字替换成**---8.10 
 * */ 
 function loadTime(){ 
 var time = new Date(); 
 
 var hours = (time.getHours()).toString(); 
 if(hours.length < 2){ 
 hours = "0" + hours; 
 } 
 var minutes = (time.getMinutes()).toString(); 
 if(minutes.length < 2){ 
 minutes = "0" + minutes; 
 } 
 var seconds = (time.getSeconds()).toString(); 
 if(seconds.length < 2){ 
 seconds = "0" + seconds; 
 } 
 var timeReturn = hours + ":" + minutes + ":" + seconds; 
 document.getElementById("left").innerHTML = timeReturn; 
 return timeReturn; 
 } 
 setInterval("loadTime()",1000); 
 var chatContents = ""; 
 var count = 0; 
 function sendMessage(){ 
 //通过调用randomName()函数来得到一个随机的名字 
 var name = randomName(); 
 //通过调用randomColor()函数来得到一个随机的颜色 
 var colorR = randomColor(); 
 //得到textarea中的内容 
 var content = document.getElementById("content").value; 
 //判断输入内容是否为空 
 if (content == "") { 
 alert("输入内容不能为空!!!"); 
 return; 
 } 
 //通过正则表达式来获取要替换的字符串 
 var regExp = /藏独|台独|傻逼|你大爷/g; 
 var regExp1 = /开心/g; 
 var regExp2 = /尴尬/g; 
// var imgReplace = content.replace(regExp,"高兴"); 
 //获取开心图片路径 
 var path1 = '<img src="img/chui.png"/>'; 
 //获取尴尬图片的路径 
 var path2 = '<img src="img/mouse.png"/>'; 
 //敏感字替换; 
 content = content.replace(regExp,"***"); 
 //将开心替换成开心图片的字符串; 
// txtReplace(content); 
 var imgReplace = content.replace(regExp1,path1); 
// alert(imgReplace); 
 //将尴尬替换成尴尬图片的字符串; 
 imgReplace = imgReplace.replace(regExp2,path2); 
// alert(imgReplace); 
 var chatContent = "<span>"+ name + ":" + "</span>" + " " + imgReplace; 
// 字符串拼接聊天记录 
 chatContents =chatContents + chatContent + " " + loadTime() +"<br/>"; 
 document.getElementById("chatList").innerHTML = chatContents; 
 //点击发送后,textarea中的内容设为空 
 document.getElementById("content").value = ""; 
 var txtColor = document.getElementsByTagName("span")[count]; 
 count++; 
 //设置span的随机颜色 
 txtColor.style.color = colorR; 
 } 
 function randomName(){ 
 var i = parseInt(Math.random() * (6 - 0 + 1) + 0); 
 var arrName = new Array("果果","六六","格格","明明","小花","兰兰","花花"); 
 return arrName[i]; 
 } 
 function randomColor(){ 
 var r = parseInt(Math.random() * (255 - 0 + 1) + 0).toString(16); 
 if(r.length < 2){ 
 r = "0" + r; 
 } 
 var g = parseInt(Math.random() * (255 - 0 + 1) + 0).toString(16); 
 if(g.length < 2){ 
 g = "0" + g; 
 } 
 var b = parseInt(Math.random() * (255 - 0 + 1) + 0).toString(16); 
 if(b.length < 2){ 
 b = "0" + b; 
 } 
 return "#" + r + g + b; 
 } 
 
 </script> 
</html>

 

显示全文