欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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;
      }
相关标签: 前端