Сканирование входов с помощью Opera Mobile 10

Мы выбрали Opera Mobile для одного приложения для КПК, и все шло хорошо, пока мы не столкнулись с проблемой, связанной с передачей отсканированного ввода в одно из текстовых полей.

Общий способ решения этой проблемы - установка одного текстового поля для фокусировки при выполнении операции сканирования.

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

Я понятия не имею, почему Opera, один из лучших мобильных браузеров, не поддерживает это.

В этих местах один и тот же вопрос задают снова и снова,

http://dev.opera.com/forums/topic/255066

http://dev.opera.com/forums/topic/650332

http://dev.opera.com/forums/topic/384311

Мы также разместили сообщения на форуме Opera Dev, и кажется, что у них (пока) нет решения для этого. Если кто-то попробовал обходной путь, нам было бы интересно услышать решение.

И, пожалуйста, обратите внимание, что решение здесь не работает в Opera Mobile 10. Я не пробовал его в предложенной версии 9.X.

1 ответ

Решение

Я нашел это сам. И вот как это сделать.

Есть скрытая кнопка в форме

input type="button" id='myHiddenButton' visible='false' onclick="javascript:doFocus();" width='1px' style="display:none"

Имейте javascript, чтобы быть запущенным на событии щелчка скрытой кнопки.

     function doFocus() {
         var focusElementId = "MyTextBox"
         var textBox = document.getElementById(focusElementId);
         textBox.focus();
     }

Нажмите кнопку, используя JavaScript в конце документа

     function clickButton() {
         document.getElementById('myHiddenButton').click();
     }

     setTimeout("clickButton()", 100);
Другие вопросы по тегам