Сканирование входов с помощью 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);