js实现简易聊天对话框


Posted in Javascript onAugust 17, 2017

本文实例为大家分享了js实现简易聊天对话框的具体代码,供大家参考,具体内容如下

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>聊天对话框</title>
<style type="text/css">
*{font-size: 14px; padding:0; margin:0;}
.main{
 position: relative;
 margin: 20px auto;
 border: 1px solid steelblue;
 width: 430px;
 height: 400px;
}
.msgInput{
 display: block;
 width: 406px;
 height: 60px;
 margin: 10px auto;

}
.sendbtn{
 position: absolute;
 width: 100px;
 height: 29px;
 bottom: 5px;
 right: 10px;
}
.content{
 list-style: none;
 width: 410px;
 height: 280px;
 margin: 5px auto;
 border: 1px dotted #D1D3D6;
 overflow-y: scroll;
}
.msgContent{
 width:auto;
 max-width: 250px;
 height: auto;
 word-break: break-all;
 margin: 5px;
 padding: 3px;
 border-radius: 5px;
}

.content .left{
 float: left;
 text-align: left;
 background-color: lightgrey;
}
.content .right{
 float: right;
 text-align: right;
 background-color: yellowgreen;
}


</style>
<script type="text/javascript">
 window.onload=function(){

 var input = document.getElementById('msg_input');//查找缓存
 document.getElementById('sendbtn').onclick=function () {
  //var input1 = document.getElementById('msg_input');//
  //input0

  sendMsg();
 }



 //快捷键 发送
 document.onkeypress = function (event) {
  var e = event || window.event;
  var keycode = e.keyCode || e.which;
  console.log(e)
  if( keycode==10){//判断同时按下ctrl 和enter
  sendMsg()
  }
 }

 function sendMsg() {
  var input = document.getElementById('msg_input');//查找缓存
  var ul = document.getElementById('content');

  var newLi = document.createElement('li');
  newLi.innerHTML = input.value;
  newLi.className = 'msgContent right';
  ul.appendChild(newLi);

  var div = document.createElement('div');
  div.style = 'clear:both';
  ul.appendChild(div);




  ajax({
  url:'http://jisuznwd.market.alicloudapi.com/iqa/query?question='+input.value,
  success:function (res) {
//  console.log(res)
   var obj = JSON.parse(res);
   console.log(obj)
   var array = obj.result.content;
//   var zhengzhou = array[0];
   var tmp = array;
//   var tmp = '温度:'+zhengzhou.day_air_temperature+','+zhengzhou.day_weather;
   console.log(tmp)

   var newLi = document.createElement('li');
   newLi.innerHTML = tmp;
   newLi.className = 'msgContent left';
   ul.appendChild(newLi);

   var div = document.createElement('div');
   div.style = 'clear:both';
   ul.appendChild(div);
   input.value = '';
   newLi.scrollIntoView();//将元素滚动到可见位置
  }
  })

  input.value = '';
  newLi.scrollIntoView();//将元素滚动到可见位置
 }

 }



 function ajax(obj) {
 //?lastCursor=6610&pageSize=10
//  var url = 'reg.php';
 var xhr = null;
 if(window.ActiveXObject){
  xhr = new ActiveXObject('Microsoft.XMLHTTP')
 }else{
  xhr = new XMLHttpRequest();
 }
// $username = $_REQUEST['username'];
// $password = $_REQUEST['password'];

 //打开与服务器的连接
 if(obj.method){
  xhr.open(obj.method,obj.url,true);
 }else{
  xhr.open('get',obj.url,true);
 }
 xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
 xhr.setRequestHeader("Authorization","APPCODE 3e9dfb924f464e9593a95f9d2bbf4348")


 // {username:'zhangsa',password:123123}
// sendData = encodeURIComponent(sendData);


 // 发送请求
 //console.log(res);
 //回调函数
 xhr.onreadystatechange = function () {
//  console.log(xhr.readyState)
  if(xhr.readyState == 4){
  //数据接收完毕
  if(xhr.status == 200){
//   console.log('请求成功',xhr.responseText)
   if(obj.success){
   obj.success(xhr.responseText)
   }

  }else{
//   console.log(xhr.status,'请求出错')
   if(obj.failure){
   obj.failure('请求失败')
   }
  }
  }
 }
//  var sendData = 'username=zhangsan&password=123456';
 if( obj.method == undefined ||obj.method.toLowerCase() =='get'){
  xhr.send(null);//
 }else{
  xhr.send(obj.params);//

 }
 }


</script>

</head>

<body>
 <div id="main" class="main">
 <ul id="content" class="content">
  <li class="msgContent left">hello?</li>
  <div style="clear:both"></div>
  <li class="msgContent left">hello</li>
  <div style="clear:both"></div>
  <li class="msgContent right">hi</li>
  <div style="clear:both"></div>
  <li class="msgContent left">hehe</li>
  <div style="clear:both"></div>
  <li class="msgContent left">goodbye</li>
  <div style="clear:both"></div>
  <li class="msgContent right">。。。。</li>
  <div style="clear:both"></div>
  <li class="msgContent right">sdfasdsadfd fasd fasd fasdfasdfasdf</li>
  <div style="clear:both"></div>
  <li class="msgContent right"> 哈哈</li>
  <div style="clear:both"></div>
 </ul>
 <textarea id="msg_input" class="msgInput"></textarea>
 <button id="sendbtn" class="sendbtn">发送</button>
 </div>
</body>
</html>

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

Javascript 相关文章推荐
jQuery 学习6 操纵元素显示效果的函数
Feb 07 Javascript
cnblogs 代码高亮显示后的代码复制问题解决实现代码
Dec 14 Javascript
JavaScript 高级篇之闭包、模拟类,继承(五)
Apr 07 Javascript
jQuery实现checkbox列表的全选、反选功能
Nov 24 Javascript
jQuery实现扑克正反面翻牌效果
Mar 10 Javascript
Angular.JS利用ng-disabled属性和ng-model实现禁用button效果
Apr 05 Javascript
easyui combogrid实现本地模糊搜索过滤多列
May 13 Javascript
jQuery 选择器用法基础入门示例
Jan 04 jQuery
JS继承定义与使用方法简单示例
Feb 19 Javascript
微信小程序中的列表切换功能实例代码详解
Jun 09 Javascript
npm全局环境变量配置详解
Dec 15 Javascript
浅谈JS的原型和原型链
Jun 04 Javascript
node.js+captchapng+jsonwebtoken实现登录验证示例
Aug 17 #Javascript
javascript 日期相减-在线教程(附代码)
Aug 17 #Javascript
微信小程序引用公共js里的方法的实例详解
Aug 17 #Javascript
微信小程序中使用Promise进行异步流程处理的实例详解
Aug 17 #Javascript
史上最全JavaScript数组去重的十种方法(推荐)
Aug 17 #Javascript
AngularJS通过ng-Img-Crop实现头像截取的示例
Aug 17 #Javascript
Javascript中的getter和setter初识
Aug 17 #Javascript
You might like
图书管理程序(三)
2006/10/09 PHP
PHP __autoload函数(自动载入类文件)的使用方法
2012/02/04 PHP
PHP+javascript制作带提示的验证码源码分享
2014/05/28 PHP
php使用pear_smtp发送邮件
2016/04/15 PHP
PHP AjaxForm提交图片上传并显示图片源码
2016/11/29 PHP
Yii2 批量插入、更新数据实例
2017/03/15 PHP
php str_getcsv把字符串解析为数组的实现方法
2017/04/05 PHP
php获取数据库结果集方法(推荐)
2017/06/01 PHP
js中的eventType事件及其浏览器支持性介绍
2013/11/29 Javascript
js实现的类似于asp数据字典的数据类型代码实例
2014/09/03 Javascript
JavaScript实现俄罗斯方块游戏过程分析及源码分享
2015/03/23 Javascript
JavaScript三元运算符的多种使用技巧
2015/04/16 Javascript
浅谈jQuery中Ajax事件beforesend及各参数含义
2016/12/03 Javascript
浅谈struts1 &amp; jquery form 文件异步上传
2017/05/25 jQuery
js 开发之autocomplete=&quot;off&quot;在chrom中失效的解决办法
2017/09/28 Javascript
全新打包工具parcel零配置vue开发脚手架
2018/01/11 Javascript
vue2.0 资源文件assets和static的区别详解
2018/04/08 Javascript
vue使用pdfjs显示PDF可复制的实现方法
2018/12/14 Javascript
微信小程序iBeacon测距及稳定程序的实现解析
2019/07/31 Javascript
Vue 实现分页与输入框关键字筛选功能
2020/01/02 Javascript
Python利用ansible分发处理任务
2015/08/04 Python
利用Python实现图书超期提醒
2016/08/02 Python
python编程使用selenium模拟登陆淘宝实例代码
2018/01/25 Python
python微信公众号之关注公众号自动回复
2018/10/25 Python
python linecache 处理固定格式文本数据的方法
2019/01/08 Python
Python 装饰器原理、定义与用法详解
2019/12/07 Python
Django自带用户认证系统使用方法解析
2020/11/12 Python
CSS3 创建网页动画实现弹跳球动效果
2018/10/30 HTML / CSS
把富文本的回车转为br标签
2019/08/09 HTML / CSS
HTML5 实现图片上传预处理功能
2020/02/06 HTML / CSS
亚瑟士美国官网:ASICS美国
2017/02/01 全球购物
台湾前三大B2C购物网站:MOMO购物网
2017/04/27 全球购物
StubHub西班牙:购买和出售全球活动门票
2017/06/05 全球购物
蔬菜基地的创业计划书
2014/01/06 职场文书
网站创业计划书
2014/04/30 职场文书
小学语文教学经验交流材料
2014/06/02 职场文书