亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

js如何判斷掃碼槍的輸入?

js如何判斷掃碼槍的輸入?

慕妹3146593 2019-02-18 20:17:52
掃碼槍輸入的時間間隔一般在8毫秒,偶爾會有16毫秒,而鍵盤輸入一般都在80毫秒以上,因此我設定當輸入間隔小于等于30毫秒時,判斷為掃碼槍輸入,但是這段代碼會丟失掃碼槍掃描的第一個字符,如何判斷第一個字符是掃碼槍輸入還是手動輸入的?
查看完整描述

1 回答

?
九州編程

TA貢獻1785條經驗 獲得超4個贊

不需要記錄 lastCode 啊,只需要在時間超出范圍的時候重置 lastTime 和 code 就行了。如果碼槍會輸入回車,那就在 keyCode === 13 的時候使用 code 就行。這時候如果 code 的值多于1個字符就一定是碼槍輸入的,沒有值就是手工輸入的……如果需要記錄手工輸入的值,可以使用另一個變量比如 manualCode 來記錄,在回車的時候如果 code 無值就從 manualCode 中截取后面若干字符出來,再適時把 manualCode 清空就好。


示意(只有判斷時間和拼接 code):


let start = new Date();

let code = "";

$("#test").on("keydown", (e) => {

    now = new Date();

  if (now - start > 50) {

      start = now;

    code = String.fromCharCode(e.keyCode);

  } else {

      code += String.fromCharCode(e.keyCode);

    console.log(code);

  }

});


查看完整回答
反對 回復 2019-02-27
  • 1 回答
  • 0 關注
  • 1828 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號