客服系统完整案例代码

Original 2019-03-28 22:49:07 369
abstract:<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>DOM实战:模拟智能在线客服系统</title> <style type="text/css"> div:nth-c
<!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>


Correcting teacher:西门大官人Correction time:2019-03-29 09:57:19
Teacher's summary:建议把setTimeout放到click事件外面去,放到一个独立的函数,在click函数中调用

Release Notes

Popular Entries