Мы используем портативный сканер для перемещения предметов в инвентаре и из него. Сканер запускает страницу ASP, которая отправляет форму для перемещения элемента. Недавно мы купили новый сканер под управлением Windows Mobile 6.1 и вскоре поняли, что Mobile IE полностью бесполезен. Он не отображает таблицы правильно и хуже, он не распознает onblur, onkeypress и многие другие общие функции javascript.Opera Mobile 9.7 Beta Set Focus
Мы протестировали множество мобильных браузеров и обнаружили, что Opera Mobile 9.7 отлично работает, за исключением того, что вы настраиваете фокус на текстовое поле ввода при загрузке страницы. На странице есть много текстовых полей, которые и отправляют форму для обработки. Как только одно поле сканируется (или вводится на клавиатуре), форма отправляет себя, обрабатывает ввод и разрешает следующее поле в форме. В конце разметки select() и focus() вызывают для выбора любого текста в поле и для установки фокуса, поэтому все, что нужно сделать пользователю, - это проверить значение. Вот как выглядит javascript в конце страницы.
document.forms ["frm1"]. Elements ["txt1"]. Select(); document.forms ["frm1"]. Elements ["txt1"]. Focus();
Есть ли способ установить фокус на Opera Mobile 9.7?
Вы пробовали оборачивать эти 2 строки в 'setTimeout' с короткой задержкой? – kangax
Я пробовал ваше решение, но оно не работает. Когда я завершаю его в setTimeout, метод select() также не работает. Методы focus() и select() определены, потому что, если я помещаю alert (document.forms ["frm1"]. Elements ["txt1"]. Focus); это говорит мне, что это метод. – awilinsk
Это странно. Единственное другое «исправление», которое я могу придумать, это добавить явный 'tabIndex' для ввода элемента (tabIndex =" - 1 ", например). Если это не сработает, вполне возможно, что Opera не поддерживает программный фокус. – kangax