如何检测键盘楔形扫描仪条形码输入到网络输入并阻止键盘输入

Posted

技术标签:

【中文标题】如何检测键盘楔形扫描仪条形码输入到网络输入并阻止键盘输入【英文标题】:How to detect keyboard wedge scanner barcode input into web input and block keyboard entry 【发布时间】:2017-06-09 02:10:03 【问题描述】:

我需要强制将条形码扫描仪输入网页表单上的文本字段,我必须阻止键盘或粘贴输入。这适用于个人用户随身携带自己的条形码卡的制造环境,他们不允许预订其他人的工作,那是作弊!他们扫描的代码是他们的员工编号,始终为 4 个字符长。条形码扫描仪是 USB 的,就像一个键盘,依次输入每个单独的字符。

【问题讨论】:

【参考方案1】:

我想出的代码检测字符 1 和 4 之间所用的时间。如果低于 10 毫秒,则代码已被扫描,如果更长,则为键盘输入。如果粘贴代码,则该字段永远不会长 1 个字符,因此未设置计时器变量,时间再次超过 10 毫秒。

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>

<script>
    var startTime = new Date().getTime();

  function barcodeScanCheck()
    var input = document.getElementById("barcode").value;

    if(input.length == 1)
      startTime = new Date().getTime();
    
    else if(input.length == 4)
      var elapsedTime = new Date().getTime() - startTime;
      if(elapsedTime < 10)
        alert("Barcode");
      
      else
        document.getElementById("barcode").value = "";
        alert("Keyboard");
      
    
  
</script>

</head>

<body>

<form action="input.html" method="get">
<input id="barcode" name="barcode" type="text" onInput="barcodeScanCheck()">
<input name="submit" type="submit">
</form>

</body>
</html>

【讨论】:

这是对您自己问题的回答吗?如果不是,请更正此问题并将您的代码放入您的问题中。 是的,我一直在寻找解决方案,但找不到解决方案,所以在我制定出解决方案后,我将其发布在这里,以帮助其他有类似需求的人。 好吧,因为你同时发布了问题和答案,这真的很令人困惑。

以上是关于如何检测键盘楔形扫描仪条形码输入到网络输入并阻止键盘输入的主要内容,如果未能解决你的问题,请参考以下文章

使用jquery检测扫描仪输入

.NET 的 POS |区分(条形码)扫描仪和键盘输入

如何用js实现调用手机摄像头扫描条形码然后带出条形码的值到文本框

如何让 python 检测键盘的击键并根据 Windows 中的输入键发送不同的字符串

用于 C# 和 WPF 的高级全局键盘钩子,用于读取键盘楔形卡扫描仪

在iOS中使用条形码扫描仪作为键盘的方法?