vue實現掃碼槍監聽


// 監聽按鍵
var code = ''
var lastTime, nextTime // 上次時間、最新時間
var lastCode, nextCode // 上次按鍵、最新按鍵
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,所以這里只會對掃碼槍有

    this.codeFind(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
}

 


免責聲明!

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



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