返回模拟智能在线客......登陆

模拟智能在线客服(二)

小淇2019-03-16 22:35:56317

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta http-equiv="X-UA-Compatible" content="ie=edge">

<title>DOM实战:模拟智能在线客服系统</title>

</head>

<style>

*{margin: 0;padding: 0;}

div:nth-child(1){

width: 450px;

height: 650px;

background: lightskyblue;

margin: 30px auto;

box-shadow: 2px 2px 2px #808080;

}

h2{

text-align: center;

margin-bottom:-10px;

}

div:nth-child(2){

width: 400px;

height: 500px;

border: 4px double green;

background: #efefef;

margin: 20px auto 10px;

overflow: hidden;

}

ul{

list-style-type: none;

line-height: 2em;

padding: 15px;

}

table{

width: 90%;

height: 80px;

margin: auto;

}

textarea{

border: none;

resize: none;

background: lightyellow;

float: left;

}

button{

width: 37px;

height: 60px;

float: right;

}

button:hover{

cursor: pointer;

background: orange;

}

</style>

<body>

<div>

<h2>在线客服</h2>

<div>

<ul>

<li></li>

</ul>

</div>

<table>

<td align="right"><textarea name="text" cols="50" rows="4"></textarea></td>

<td align="left"><button type="button">发送</button></td>

</table>

</div>

<script>

// 如果想操作页面上的东西,拿不到元素一切白搭

// 1.获取到页面相关的元素

let btn = document.getElementsByTagName('button')[0];

let text = document.getElementsByName('text')[0];

let ul = document.getElementsByTagName('ul')[0];

// 计数器

let sum = 0;


// 2.添加点击事件,获取用户信息并发送到窗口

btn.onclick = function(){

if(text.value.length === 0 ){

alert('老哥,留言要填内容!');

return false;

}


// 1.将用户提交的表单保存起来,然后清空用户留言表单

let userComment = text.value;

text.value = '';


// 2.创建li,然后把表单插入聊天窗口(要现在文档里面创建li,不能直接在ul里面创建)

let li = document.createElement('li');

let userPic = '<img src="../images/截图/123.jpg" width="30px" style="border-radius:50%">';

li.innerHTML =userPic + '&nbsp;&nbsp;我是你大佬淇哥:' + userComment;

ul.appendChild(li)

sum += 1;


// 设置定时器,1秒后自动回复

setTimeout(function(){

// 自动回复信息的模板

let info = [

'1',

'2',

'3',

'4',

'5'

];

let temp = info[Math.floor(Math.random()*3)];

let reply = document.createElement('li');

let kefuPic = '<img src="../images/截图/xz.jpg" width="30px" style="border-radius:50%">';

reply.innerHTML = kefuPic + '&nbsp;&nbsp;客服星仔:' + '<span style="color:red">'+temp+'</span>';

ul.appendChild(reply);

sum +=1;

},200);



//当聊天记录达到10条时清空窗口

if (sum > 6) {

                ul.innerHTML = '';

                sum = 0;

        }

}


//------------------------------------回车事件------------------------------------

onkeydown = function(event){

if(event.keyCode==13)

{

// if(text.value.length === 0 ){

// alert('老哥,留言要填内容!');

// return false;

// }

if(!text.value.trim()){

alert('老哥!填内容再输入按回车啊');

return false;

}


// 1.将用户提交的表单保存起来,然后清空用户留言表单

let userComment = text.value;

text.value = '';


// 2.创建li,然后把表单插入聊天窗口(要现在文档里面创建li,不能直接在ul里面创建)

let li = document.createElement('li');

let userPic = '<img src="../images/截图/123.jpg" width="30px" style="border-radius:50%">';

li.innerHTML =userPic + '&nbsp;&nbsp;发哥:' + userComment;

ul.appendChild(li);

sum += 1;


// 设置定时器,1秒后自动回复

setTimeout(function(){

// 自动回复信息的模板

let info = [

'1',

'2',

'3',

'4',

'5'

];

let temp = info[Math.floor(Math.random()*3)];

let reply = document.createElement('li');

let kefuPic = '<img src="../images/截图/xz.jpg" width="30px" style="border-radius:50%">';

reply.innerHTML = kefuPic + '&nbsp;&nbsp;客服星仔:' + '<span style="color:red">'+temp+'</span>';

ul.appendChild(reply);

sum +=1;


// 清空计数器

if(sum > 6){

ul.innerHTML = '';

sum = 0;

}

},200);

}else{

return false;

alert('回车事件调用失败,请检查!');

}

}

</script>

</body>

</html>

总结分三部分

第一部分:用户留言

    首先新建li,然后获取输入框里面的值把他赋值给li,最后把li插入到ul里面的最后一个子元素。

第二部分:判断用户是是否留言

    判断用户是否留言,如果用户没有留言就输出一个弹窗(老师的if()判断有点问题,如果第一个输入内容后,第二次输入一个空值判断不出来,所以我自己又重新写了一个非空判断)

第三部分:客服留言

    这个还是没有理解用法,稍后百度一下语法的使用再在微博中记录下来。

(最后我觉得用鼠标点击input好麻烦,所以自己又重新写了一段回车方法,按回车的时候把以上内容输出效果与老师的并不不同)


最新手记推荐

• 用composer安装thinkphp框架的步骤• 省市区接口说明• 用thinkphp,后台新增栏目• 管理员添加编辑删除• 管理员添加编辑删除

全部回复(0)我要回复

暂无评论~
  • 取消回复发送