js 获取扫码枪输入数据
程序员文章站
2022-06-14 20:20:43
...
1、扫码枪相当于键盘输入设备,输入一连串数字后加一个enter键。但在实际开发中需要区分是扫描枪输入还是键盘用户输入,区别在于扫码枪输入很快。
let code = '';
let lastTime, nextTime;
let lastCode, nextCode;
window.document.onkeypress = (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); // 获取到扫码枪输入的内容,做别的操作
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;
}
上一篇: ADODB 数据库Access连接