USB-сканер штрих-кода открывает страницу загрузки браузера

Вопрос: Я пытаюсь отсканировать некоторый штрих-код в текстовое поле, содержащееся в моем браузере, но он открывает страницу загрузки в любом браузере (хром, firefox, т.е.). Я предполагаю, что есть некоторый входной эквивалент CTRL + J, который запускает браузер, чтобы открыть страницу загрузки. Кто-нибудь сталкивался с этой проблемой? Есть ли способ передать его (при условии, что мои

Вопрос:

Я пытаюсь отсканировать некоторый штрих-код в текстовое поле, содержащееся в моем браузере, но он открывает страницу загрузки в любом браузере (хром, firefox, т.е.). Я предполагаю, что есть некоторый входной эквивалент CTRL + J, который запускает браузер, чтобы открыть страницу загрузки.

Кто-нибудь сталкивался с этой проблемой? Есть ли способ передать его (при условии, что мои клиенты не могут изменить конфигурацию своего сканера, ни конфигурацию браузера)?

Благодарю.

Ответ №1

Вам нужно настроить сканеры.

Ctrl-J = 0x0A = Linefeed for Unix-like Systems

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

Ответ №2

Хотя уже поздно публиковать ответ, я надеюсь, что это поможет кому-то в будущем.

Проблема связана с символом конца, отправленным из считывателя штрих-кода. По умолчанию мой считыватель штрих-кодов отправляет CR+LF после ввода. Это, к сожалению, открывает страницу загрузки в хроме. Исправить это очень просто, вместо настройки самого сканера (что может быть сложно), вы можете добавить на свою страницу следующий сценарий, чтобы игнорировать конечный символ, отправленный со сканера штрих-кода:

<script> document.addEventListener(‘keydown’, function(event) { if( event.keyCode == 13 || event.keyCode == 17 || event.keyCode == 74 ) event.preventDefault(); }); </script>

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

Ответ №3

Проблема может быть решена, если проверить, что e.ctrlKey true, тогда мы можем игнорировать keypress. Если нажата клавиша Ctrl e.ctrlKey true

<script> let data = » window.onload = function () { window.document.body.addEventListener(‘keydown’, function(event){ if( event.keyCode == 13 || event.keyCode == 16 || event.keyCode == 17 ) { event.preventDefault(); return; } if(event.ctrlKey) { event.preventDefault(); return; } data += event.key console.log(data) }); } </script>

Используя этот код, мы можем предотвратить переход хром на страницу загрузки.

Ответ №4

У меня проблема только с хром. Фокус Firefox переходит в панель поиска Google после первого успешного снимка. У меня есть читатель штрих-кода Манхэттена. На данный момент мне удалось использовать Web (также известный как прозрение), это единственный, который он работает, но он не является “общим предложением клиента”,

Ответ №5

Включение управления подобно (event.keyCode == 13 || event.keyCode == 17 || event.keyCode == 74) не будет исправлять проблему. Потому что, если значение штрих-кода имеет символ “J”, вы не сможете получить результат barcode. Мы пытаемся добавить дополнительный e.ctrlKey управления e.ctrlKey. Но на этот раз мы извлекаем только один символ из штрих-кода. Кажется, что решить проблему через js сложно. Возможно, лучшим вариантом является изменение настроек сканера.

Ответ №6

Вы можете попробовать Internet Explorer 11 или следовать ответу Мустафы Сабира, это нормально для Манхэттена SD313B.

Ответ №7//I managed to focus on exactly what was being sent by Chrome, and ignore just that: var lastKeyCode = «»; document.addEventListener(‘keydown’, function (event) { if (lastKeyCode == «ControlLeft» && event.code == «KeyJ») event.preventDefault(); lastKeyCode = event.code; });

Оцените статью
Добавить комментарий