Как перехватить ввод в документе [нажатие клавиши] в окне в 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