#### js页面监听扫码枪
> 该方法可以直接放在js代码中使用
```javascript
// 扫码枪
var code = "";
var lastTime, nextTime;
var lastCode, nextCode;
document.onkeypress = function (e) {
if (window.event) { // IE
nextCode = e.keyCode;
} else if (e.which) { // Netscape/Firefox/Opera
nextCode = e.which;
}
if (nextCode === 13) {
if (code.length < 3) return; // 手动输入的时间不会让code的长度大于2,所以这里只会对扫码枪有
console.log(code); // 获取到扫码枪输入的内容,做别的操作
// 得到扫码枪的值,请求数据库,返回结果
$.ajax({
type: "POST",
url: "{:url('barcode_select')}",
data: {barcode: code},
dataType: "json",
success: function (res) {
if (res.code == 0){
var data = res.data
var shop_name = '';
for(var i = 0; i < (data.shopinfo).length; i++){
shop_name = data.shopinfo[i].name + '和' + shop_name
}
var shop_str = shop_name.substr(0, shop_name.length-1);
// 给搜索框赋值并搜索
$("#keys").attr("value", data.barcode);
$("#search").click();
// 拼接需要语音播报的值
var str = data.goods_name + data.color + data.size_name + '属于' +shop_str
// 调用语音播报的方法
speckText(str);
}else {
console.log('111')
}
},error: function (error) {
console.log(11)
}
});
code = '';
lastCode = '';
lastTime = '';
return;
}
nextTime = new Date().getTime();
if (!lastTime && !lastCode) {
code += e.key;
}
if (lastCode && lastTime && nextTime - lastTime > 30) { // 当扫码前有keypress事件时,防止首字缺失
code = e.key;
} else if (lastCode && lastTime) {
code += e.key;
}
lastCode = nextCode;
lastTime = nextTime;
}
```
- 介绍
- PHP
- 过滤
- 访问第三方
- 封装概率
- 将反斜杠转成正斜杠
- 超长数字运算
- php高级
- 设计模式
- TP笔记
- tp5
- TP
- 时间操作
- 模型
- Base函数
- 字符串数组操作
- 数据库
- 查询
- 其它操作
- 文件类操作
- 上传
- 导出
- 压缩
- tp6
- 封装上传方法
- 浏览器下载文件
- deepin踩坑
- mysql安装相关
- layui
- layui表格操作
- layui表格点击图片放大
- layui点击数据表格添加或删除一行
- layui表格操作
- lemocms
- html相关
- 按钮
- js
- crud的js函数
- base相关函数
- layui关闭弹窗层并刷新父窗口
- 表单操作
- h5+js
- layui图片上传和预览
- 多图上传
- 自定义
- vscode
- vs更换电脑时,同步配置
- 前端
- vue-admin后台
- 相关操作
- js相关
- js播报语音
- js监听页面扫码枪
- fastadmin
- fast的js
- Typora
- 数据库
- MySQL