Как перехватить ввод в документе [нажатие клавиши] в окне в javascript от сканера Zebra mc330m?

Я настроил сканер для отправки Enter в конце ввода, и JS читает его правильно, но другие символы теряются.

Я попытался декодировать входные символы с помощью event.keyCode, event.which, event.charCode и ничего не работает. Если я присоединяю это к нормальному вводу, это работает. Также работает в адресной строке браузера (хром). Но когда я прикрепляю его к документу ['onkeypress'], он не читает символы.

Я попробовал решение Мартина Орта отсюда: https://developer.zebra.com/thread/35513 но я не смог заставить его работать, я даже не знаю, тот ли это сканер.

Отсюда я понял, что сканер отправляет символы ASCII, и у javascript нет механизма их чтения? https://developer.zebra.com/thread/34536

Если кто-нибудь знает решение этой проблемы, помощь очень ценится. Я предпочитаю с js/jquery, если это вообще возможно.

1 ответ

Этот код делает то, что создает ввод, фокусируется на нем, но абсолютно не соответствует экрану, потому что 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">

Эта функция, использующая нажатие клавиш, недавно была добавлена ​​в DataWedge 7.3, который включен в последнее обновление ОС MC33 (13.02.15 - Обновление LG 16) - я написал блог о том, как ее использовать: https://developer.zebra.com/blog/listening-keypress-events-datawedge. Для наглядности работаю на Zebra

Другие вопросы по тегам