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; }
PS: USB 스캐너 데이터를 얻기 위한 js 코드를 살펴보겠습니다
머리말
관련 튜토리얼이 많이 있는데 사용법이 쉽지 않아서 요약하고 단순화했습니다. 각각의 장점을 활용하여
원리
jQuery 도입이 필요합니다. vue
window.onload = (e)=> { document.onkeydown = (e)=> { let nextCode,nextTime = ''; let lastTime = this.lastTime; let code = this.code; if (window.event) {// IE nextCode = e.keyCode } else if (e.which) {// Netscape/Firefox/Opera nextCode = e.which } nextTime = new Date().getTime(); //字母上方 数字键0-9 对应键码值 48-57; 数字键盘 数字键0-9 对应键码值 96-105 if((nextCode>=48&&nextCode<=57) || (nextCode>=96&&nextCode<=105)){ let codes = {'48':48,'49':49,'50':50,'51':51,'52':52,'53':53,'54':54,'55':55,'56':56,'57':57, '96':48,'97':49,'98':50,'99':51,'100':52,'101':53,'102':54,'103':55,'104':56,'105':57 }; nextCode = codes[nextCode]; nextTime = new Date().getTime(); } // 第二次输入延迟两秒,删除之前的数据重新计算 if(nextTime && lastTime && nextTime-lastTime>2000){ code = String.fromCharCode(nextCode); }else{ code += String.fromCharCode(nextCode) } // 保存数据 this.nextCode = nextCode; this.lastTime = nextTime; this.code = code; // 键入Enter if(e.which == 13) { // 判断 code 长度(这里就获取到条码值了,以下业务自由发挥) code = $.trim(code) if (code.length == 13) { this.$message('A类条码:' + code); } else if (code.length == 23) { this.$message('B类条码:' + code); } else if (code.length == 0) { this.$message('请输入条码'); } else{ this.$message('条码不合法:' + code); } //键入回车务必清空code值 this.code = '' return false; } } }
관련 학습 권장사항: javascript 비디오 튜토리얼
위 내용은 js가 코드 스캐너에서 입력 데이터를 얻는 방법을 살펴보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!