zoukankan      html  css  js  c++  java
  • Javascript判断扫码枪的输入,以及扫码后提交表单数据

    条码扫描器其实就是一种输入设备,跟键盘一样。在控制台打印扫描过程,可以看出,扫描过程就像是在键盘上敲击相应的键,keycode和键盘是一一对应的,只是输入速度(间隔时间)比物理键盘输入要快得多。我们可以通过监听输入间隔时间,来判断到底是键盘输入还是扫描输入。
    
    扫码枪输入的时间间隔一般在10毫秒以内,物理键盘输入要远大于这个数值,通常为80毫秒以上。因此,当输入间隔时间小于30毫秒时,判断为扫码枪输入,其余情况判断为键盘输入。
    let lastTime = null;
    let nextTime = null;
    let code = '';
    document.onkeydown = function (e) {
      let keycode = e.keyCode || e.which || e.charCode;
      nextTime = new Date();
      if (keycode === 13) {
        if (lastTime && (nextTime - lastTime < 30)) {
          // 扫码枪
          // do something
        } else {
          // 键盘
          // do something
        }
        code = '';
        lastTime = null;
        e.preventDefault();
      } else {
        if (!lastTime) {
          code = String.fromCharCode(keycode);
        } else {
          if (nextTime - lastTime < 30) {
            code += String.fromCharCode(keycode);
          } else {
            code = '';
          }
        }
        lastTime = nextTime;
      }
    };

     转载:https://www.jianshu.com/p/3019858e3cad

  • 相关阅读:
    Using Spark's "Hadoop Free" Build
    关于Consul
    关于Eureka
    关于Gateway
    关于Ribbon
    关于Hystrix
    关于Feign
    关于SpringBoot
    关于架构
    关于敏捷开发Scrum(一)
  • 原文地址:https://www.cnblogs.com/huanhuan55/p/11465763.html
Copyright © 2011-2022 走看看