js讀取usb掃碼槍數據


條碼掃描器其實就是一種輸入設備,跟鍵盤一樣。在控制台打印掃描過程,可以看出,掃描過程就像是在鍵盤上敲擊相應的鍵,keycode和鍵盤是一一對應的,只是輸入速度(間隔時間)比物理鍵盤輸入要快得多。我們可以通過監聽輸入間隔時間,來判斷到底是鍵盤輸入還是掃描輸入。

掃碼槍輸入的時間間隔一般在10毫秒以內,物理鍵盤輸入要遠大於這個數值,通常為80毫秒以上。因此,當輸入間隔時間小於30毫秒時,判斷為掃碼槍輸入,其余情況判斷為鍵盤輸入。

window.onload = function () {// 獲取掃描的二維碼
  var code = "";
  var lastTime, nextTime;
  var lastCode, nextCode;
  document.onkeypress = function (e) {
      nextCode = e.which;
      nextTime = new Date().getTime();

      if (lastCode != null && lastTime != null && nextTime - lastTime <= 30) {// 掃碼槍
          code += String.fromCharCode(lastCode);
      } else if (lastCode != null && lastTime != null && nextTime - lastTime > 100) { // 鍵盤
          code = "";
      }

      lastCode = nextCode;
      lastTime = nextTime;
  }
  this.Template_rendering = function () {
      this.onkeypress = function (e) {
          if (e.which == 13) {
              console.log(code);
              // $('#code').text(code)
              readcode({code: code}); // 調用readcode方法
              code = "";
          }
      }
  }
  this.Template_rendering();
};


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM