赞
踩
今天内容:
下载插件的网站:
https://www.gugeapps.net/ 无需扫码
http://www.cnplugins.com/ 需要扫二维码验证
从上述两个网站下载的插件,和从Chrome商店下载的插件是一样的。只不过Chrome商店被和谐了,打不开。
如何安装使用插件
JSONView.crx
。可以把后缀换成 zip
Chrome --> 更多工具 --> 扩展程序 --> 打开开发者模式 --> 加载已解压的扩展程序 --> 选择上一步解压得到的文件夹
最终效果
美化JSON的插件
测试接口的工具
<li>
标签标示
<li class="left_word">
<li class="right_word">
<audio src="">
,用于播放语音,我们只需要设置src属性为一个音频文件地址即可自动播放scroll.js
,它里面封装的一个函数 resetui()
,用于重置聊天区的滚动条。点击发送按钮的时候,获取输入框的值,然后调用函数。
// 单击事件
// 给 发送 注册单击事件
$('#btnSend').on('click', function () {
// 1. 渲染自己说的话
let myWord = $('#ipt').val().trim(); // 取得输入框的值
renderMyWord(myWord);
// 2. 得到对方的回应,并渲染到页面中
// 3. 播放语音
});
// 封装一个函数,渲染自己说的话
function renderMyWord (myWord) {
let str = `<li class="right_word">
<img src="img/person02.png" /> <span>${myWord}</span>
</li>`;
// 把str放到ul后面
$('#talk_list').append(str);
// 清空输入框的内容
$('#ipt').val('');
// 重置滚动条,否则后面说的话看不见了
resetui(); // scroll.js 里面封装的函数,作用是可以重置滚动条
// 渲染机器人的回应
renderRobotWord(myWord);
}
// 获取机器人的回应,并渲染到页面中 function renderRobotWord (myWord) { // 按照接口文档,发送ajax请求。获取机器人的回应 $.get('http://www.liulongbin.top:3006/api/robot', {spoken: myWord}, function (res) { // console.log(res); if (res.message === 'success') { // 组装一个li标签。把机器人的回应渲染到页面中 let str = `<li class="left_word"> <img src="img/person01.png" /> <span>${res.data.info.text}</span> </li>`; // 把str追加到ul中 $('#talk_list').append(str); // 重置滚动条 resetui(); // 调用把文字转成语音的函数 playVoice(res.data.info.text); } }); }
// 播放语音
function playVoice (text) {
$.get('http://www.liulongbin.top:3006/api/synthesize', {text: text}, function (res) {
// console.log(res);
if (res.status === 200) {
// 设置 audio 标签的src属性
$('#voice').attr('src', res.voiceUrl);
}
});
}
// 优化 - 在输入框里按回车,也能够发送(让按回车的效果和点击发送按钮的效果一样)
$('#ipt').keyup(function (e) {
// 键盘弹起之后,触发的函数
// 获取键盘的keyCode值
// let keyCode = e.keyCode; // jQuery封装的属性,可以获取到键盘的keyCode
let keyCode = e.which; // jQuery封装的属性,也可以获取到键盘的keyCode
// 判断,是否按的是回车键
if (keyCode === 13) {
// 说明按了回车键
// 解决方案一:renderMyWord($(this).val().trim());
// 解决方案二:触发 发送按钮的单击事件
// $('#btnSend').click(); //
$('#btnSend').trigger('click');
}
});
prop适合用在属性的值是布尔值的情况下。比如:
<input readonly />
<input type="checkbox" checked />
<input type="radio" checked />
<input disabled />
<select> <option selected></option> </select>
除此之外,其他的任何属性都用 attr();
form标签
表单域
按钮
<!--下面的按钮 会 造成表单的提交-->
<button> 提交 </button> ==== <button type="submit"></button> ==== <input type="submit" value="提交" />
<!--下面的按钮 不会 造成表单的提交-->
<button type="button">提交<button> ===== <input type="button" value="提交" />
<!---
action 属性,表示表单提交的地址,默认空,表示提交到当前页面
method 属性,表示提交方式,可选GET和POST,默认是GET
--->
<form action="http://www.liulongbin.top:3006/api/addbook" method="POST">
<input type="text" name="username"><br>
<button type="submit">提交</button>
</form>
提前了解:
$('form').serialize();
– 得到一个字符串
bookname=aaa&author=bbb&publisher=ccc
$('form').serializeArray();
– 得到一个数组
[
{name: 'bookname', value: 'aaa'},
{name: 'author', value: 'bbb'},
{name: 'publisher', value: 'ccc'}
]
细节问题:
name
属性。否则,serialize或serializeArray不会收集到值直接
作为ajax请求的data使用
。略
监听表单提交事件,可以有下面两种写法:
$('form').submit(事件处理函数)
— 推荐方案$('提交按钮').click(事件处理函数);
字符串大量拼接的问题
解决办法
模板引擎
template-web.js
script
标签包裹script
标签的type=“text/html"
script
标签的id=”值“
{{title}}
这样的模板语法,指定数据展示的位置。原样输出 - 适用于 直接显示标签的样式,而不是使用实体符合
{{@title}}
直接输出
{{name}}
条件判断
{{if 条件}}
xxx
{{else}}
yyy
{{/if}}
循环
{{each hobby val key}}
{{val}} --- 表示数组的值
{{key}} --- 表示数组的下标
{{/each}}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。