如何从Zebra mc330m扫描仪捕获JavaScript窗口中的document [keypress]上的输入?

时间:2019-02-19 14:30:47

标签: javascript jquery barcode zebra

我将扫描仪配置为在输入末尾发送Enter键,js会正确读取它,但其他字符丢失。

我尝试使用 event.keyCode,event.which,event.charCode 对输入字符进行解码,但没有任何效果。如果我将其附加到普通输入,则可以正常工作。 它也可以在浏览器地址栏中(chrome)使用。但是,当我将其附加到文档['onkeypress']时,它不会读取字符。

我从这里尝试了Martin Orth解决方案:https://developer.zebra.com/thread/35513 但是我无法使它正常工作,甚至不知道它是否是同一台扫描仪。

从这里我知道扫描仪正在发送ASCII字符,而javascript没有读取它们的机制? https://developer.zebra.com/thread/34536

如果有人知道该问题的解决方案,我们将非常感谢您的帮助。如果可能的话,我更喜欢js / jquery。

2 个答案:

答案 0 :(得分:3)

此代码的作用是创建一个针对它的输入,但是绝对不在屏幕上,因为IE在关注隐藏的文本字段时存在问题。然后,检测输入的更改并将其输出到控制台。

$(document).ready(function(){
     $(".scanner-input").focus().on("input",function(){
          let barcode = $(this).val();
          console.log(barcode);
          $(this).val("");
     }).blur(function(){
         $(this).focus();
     });
});
.scanner-input{position:absolute;left:-10000px;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" class="scanner-input">

答案 1 :(得分:1)

此功能最近通过使用按键功能被添加到DataWedge 7.3中,该功能包含在最新的MC33 OS更新(02.13.15-LG Update 16)中-我写了一个有关如何使用它的博客:https://developer.zebra.com/blog/listening-keypress-events-datawedge。为了清楚起见,我为Zebra工作