js编写简单的聊天室功能


Posted in Javascript onAugust 17, 2017

这个聊天室写的特别简易,比较适合刚开始学习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>

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js模拟实现Array的sort方法
Dec 11 Javascript
使用javascript创建快捷方式的简单实例
Aug 09 Javascript
js变形金刚文字特效代码分享
Aug 20 Javascript
JavaScript如何动态创建table表格
Aug 02 Javascript
js实现div模拟模态对话框展现URL内容
May 27 Javascript
jquery判断对象是否为空并遍历对象的简单实例
Jul 26 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
Oct 05 Javascript
Vue.js中用v-bind绑定class的注意事项
Dec 13 Javascript
react实现pure render时bind(this)隐患需注意!
Mar 09 Javascript
用javascript获取任意颜色的更亮或更暗颜色值示例代码
Jul 21 Javascript
vue无限轮播插件代码实例
May 10 Javascript
浅谈vuex中store的命名空间
Nov 08 Javascript
Angular使用 ng-img-max 调整浏览器中的图片的示例代码
Aug 17 #Javascript
Canvas放置反弹效果随机图形(实例)
Aug 17 #Javascript
js实现方块上下左右移动效果
Aug 17 #Javascript
JavaScript中一些特殊的字符运算
Aug 17 #Javascript
在 Angular 中使用Chart.js 和 ng2-charts的示例代码
Aug 17 #Javascript
JS 中LocalStorage和SessionStorage的使用
Aug 17 #Javascript
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
Aug 17 #jQuery
You might like
一拳超人中怪人协会钦定! S级别最强四人!
2020/03/02 日漫
php使用curl模拟浏览器表单上传文件或者图片的方法
2018/11/10 PHP
php实现微信小程序授权登录功能(实现流程)
2019/11/13 PHP
通过JAVASCRIPT读取ASP设定的COOKIE
2007/02/15 Javascript
一个轻量级的javascript库 pj介绍
2010/12/19 Javascript
拖动table标题实现改变td的大小(css+js代码)
2013/04/16 Javascript
Javascript限制网页只能在微信内置浏览器中访问
2014/11/09 Javascript
js字符串完全替换函数分享
2014/12/03 Javascript
JS实现带鼠标效果的头像及文章列表代码
2015/09/27 Javascript
js面向对象的写法
2016/02/19 Javascript
原生javascript实现addClass,removeClass,hasClass函数
2016/02/25 Javascript
JS本地刷新返回上一页代码
2016/07/25 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
2016/10/05 Javascript
AngularJS表单和输入验证实例
2016/11/02 Javascript
vue-dialog的弹出层组件
2020/05/25 Javascript
利用vue组件自定义v-model实现一个Tab组件方法示例
2017/12/06 Javascript
json 带斜杠时如何解析的实现
2019/08/12 Javascript
关于vue 项目中浏览器跨域的配置问题
2020/11/10 Javascript
python实现RSA加密(解密)算法
2016/02/17 Python
Python使用re模块实现信息筛选的方法
2018/04/29 Python
python接口自动化测试之接口数据依赖的实现方法
2019/04/26 Python
选择Python写网络爬虫的优势和理由
2019/07/07 Python
Python Web框架之Django框架Model基础详解
2019/08/16 Python
python利用opencv实现SIFT特征提取与匹配
2020/03/05 Python
解决Jupyter NoteBook输出的图表太小看不清问题
2020/04/16 Python
浅析python 动态库m.so.1.0错误问题
2020/05/09 Python
详解Python中的路径问题
2020/09/02 Python
OpenCV实现机器人对物体进行移动跟随的方法实例
2020/11/09 Python
一个基于canvas的移动端图片编辑器的实现
2020/10/28 HTML / CSS
英国在线珠宝店:The Jewel Hut
2017/03/20 全球购物
LightInTheBox法国站:中国跨境电商
2020/03/05 全球购物
GC是什么?为什么要有GC?
2013/12/08 面试题
2014年财务工作总结范文
2014/11/11 职场文书
离婚协议书格式
2015/01/26 职场文书
写给媳妇的检讨书
2015/05/06 职场文书
Java实现学生管理系统(IO版)
2022/02/24 Java/Android