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 相关文章推荐
Jquery作者John Resig自己封装的javascript 常用函数
Nov 09 Javascript
兼容IE与firefox火狐的回车事件(js与jquery)
Oct 20 Javascript
jquery做的一个简单的屏幕锁定提示框
Mar 26 Javascript
Javascript模块化编程详解
Dec 01 Javascript
判断浏览器的内核及版本号方法汇总
Jan 05 Javascript
javascript淘宝主图放大镜功能
Oct 20 Javascript
jQuery图片切换动画特效
Nov 02 Javascript
Avalonjs 实现简单购物车功能(实例代码)
Feb 07 Javascript
js禁止浏览器页面后退功能的实例(推荐)
Sep 01 Javascript
浅谈Angular4中常用管道
Sep 27 Javascript
Bootstrap Fileinput 4.4.7文件上传实例详解
Jul 25 Javascript
JavaScript实现与使用发布/订阅模式详解
Jan 19 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
在PHP中养成7个面向对象的好习惯
2010/01/28 PHP
小文件php+SQLite存储方案
2010/09/04 PHP
使用PHP实现二分查找算法代码分享
2011/06/24 PHP
在Thinkphp中使用ajax实现无刷新分页的方法
2016/10/25 PHP
javascript 命名空间以提高代码重用性
2008/11/13 Javascript
设置下载不需要倒计时cookie(倒计时代码)
2008/11/19 Javascript
js生成缩略图后上传并利用canvas重绘
2014/05/15 Javascript
jquery实现搜索框常见效果的方法
2015/01/22 Javascript
Javascript中的高阶函数介绍
2015/03/15 Javascript
smartcrop.js智能图片裁剪库
2015/10/14 Javascript
不想让浏览器运行javascript脚本的方法
2015/11/20 Javascript
AngularJS 依赖注入详解和简单实例
2016/07/28 Javascript
AngularJS表单基本操作
2017/01/09 Javascript
基于Vue实现支持按周切换的日历
2020/09/24 Javascript
使用vue-cli(vue脚手架)快速搭建项目的方法
2018/05/21 Javascript
详解mpvue开发小程序小总结
2018/07/25 Javascript
对angularjs框架下controller间的传值方法详解
2018/10/08 Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
2019/04/02 Javascript
javascript设计模式 ? 中介者模式原理与用法实例分析
2020/04/20 Javascript
基于vue+echarts数据可视化大屏展示的实现
2020/12/25 Vue.js
利用Python yagmail三行代码实现发送邮件
2018/05/11 Python
在Pytorch中计算自己模型的FLOPs方式
2019/12/30 Python
python3 sorted 如何实现自定义排序标准
2020/03/12 Python
Melijoe美国官网:法国奢侈童装购物网站
2017/04/19 全球购物
北美领先的智能产品购物网站:Wellbots
2018/06/11 全球购物
New Balance比利时官方网站:购买鞋子和服装
2021/01/15 全球购物
宿舍违规用电检讨书
2014/02/16 职场文书
《中国梦我的梦》中学生演讲稿
2014/08/20 职场文书
大学新生军训自我鉴定范文
2014/09/13 职场文书
乡镇领导干部个人对照检查材料思想汇报
2014/09/23 职场文书
法定代表人证明书
2014/11/28 职场文书
出生证明范本
2015/06/15 职场文书
员工担保书范本
2015/09/22 职场文书
关于销售人员的年终工作总结要点
2019/08/15 职场文书
left join、inner join、right join的区别
2021/04/05 MySQL
Pyhton爬虫知识之正则表达式详解
2022/04/01 Python