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

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

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

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

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

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

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
1 771
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Этот код делает то, что он создает ввод, фокусирующийся на нем, но абсолютно позиционируется за пределами экрана, потому что у IE есть проблема с фокусировкой на скрытых текстовых полях. Затем обнаруживает изменения во входных данных и выводит их на консоль.

$(document).ready(function(){
     $(".scanner-input").focus().on("input",function(){
          let barcode = $(this).val();
          console.info(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">

спасибо, но, к сожалению, пользователям нужно будет сканировать несколько штрих-кодов, а не только один, поэтому, когда ввод находится за пределами видимого экрана на мобильном устройстве, им будет очень трудно вернуться и снова сфокусировать его.

marto 19.02.2019 16:24

@marto, я сделал небольшую модификацию, которая позволит это сделать. По сути, после того, как вы берете штрих-код, он очищает поле ввода, и они могут сканировать снова. Я также обновил код, поэтому, если ввод теряет фокус, ему будет передан фокус.

imvain2 19.02.2019 16:29

Это действительно хороший ответ. Как вы можете видеть из этих сообщений на форуме, некоторые браузеры устройств позволяют вам читать onKeyPress из DOM, но не на всех устройствах, тогда как этот метод должен надежно работать на устройствах все. Вы можете использовать корпоративный браузер Zebra или гибридную платформу, чтобы добиться того же с большим контролем, но у меня нет лучшего предложения, чем этот ответ, для чистого решения на основе Chrome, по крайней мере, до тех пор, пока Zebra не внесет некоторые изменения в DataWedge, чтобы разрешить это Работа. Для ясности, я работаю на Zebra.

Darryn Campbell 20.02.2019 09:03
Ответ принят как подходящий

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

Спасибо за поддержку Даррин! Это настоящее решение!

marto 31.07.2019 08:57

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