<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>DOM实战:模拟智能在线客服系统</title> <style type="text/css"> div:nth-child(1){ width: 450px;height: 650px; background: skyblue;margin: 30px auto; color: #333;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; } ul{ list-style: none; line-height: 2em; overflow: hidden; padding: 15px; } table{ width: 90%;height: 80px; margin: auto; } textarea{ border: none; resize: none; background: lightyellow; padding: 10px; } button{ width: 60px; height: 40px; background: seagreen; border: none; } button:hover{ cursor: pointer; background: orange; } </style> </head> <body> <div> <h2>在线客服</h2> <div> <ul> <li></li> </ul> </div> <table> <tr> <td align="right"><textarea name="text" cols="50" rows="4"></textarea></td> <td align="left"> <button type="button">发送</button></td> </tr> </table> </div> <script type="text/javascript"> // 获取到页面中的元素 // 按钮 let btn = document.getElementsByTagName('button')[0]; // 输入内容 let text = document.getElementsByName('text')[0]; // ul元素 let list = document.getElementsByTagName('ul')[0]; // 计数器 let sum = 0; // 添加点击事件,获取用户说的内容并发送到窗口 btn.onclick = function(){ // 获取用户提交的内容 if(text.value.length === 0){ alert('大哥,您是不是忘记说点什么了?'); return false; } // 将用户提交的内容获取并保存 let userComment = text.value; // 立即将用户留言区清空 text.value = ''; // 创建一个li let li = document.createElement('li'); // 用户头像 let userPic = '<img src="img/kf.png" width="30" style="border-radius:50%">'; li.innerHTML = userPic+ ' '+ userComment; list.appendChild(li); sum += 1; // 回复,2秒后自动回复 setTimeout(function(){ // 定义一个自动回复信息模板 let info = [ '晚上好!有什么可以帮到您的吗?', '除了退货退款,什么都可以问', '你说的是什么,我不明白?', '在我觉得方便的时候再回复你', '投诉我的人多了,你排队吧', ]; let tmp = info[Math.floor(Math.random()*4)]; let reply = document.createElement('li'); let kfPic = '<img src="img/xt.png" width="30" style="border-radius:50%;">'; reply.innerHTML = kfPic + ' ' + '<span style="color:red">' + tmp + '</span>'; // 把数据添加到末尾 list.appendChild(reply); sum += 1; },2000); // 清空窗口并将计数器清零 if(sum > 10 ) { list.innerHTML = ''; sum = 0; } } </script> </body> </html>