#### 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