Opera Mobile не может сфокусировать ввод текста с помощью Javascript - PullRequest
3 голосов
/ 19 апреля 2011

Используя Opera Mobile (пробовал 9.5 и 10), я не могу получить курсор внутри текстового поля, используя Javascript.

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

Я пробовал:

  • jQuery .focus ()
  • jQuery .live ()
  • Barebones Javascript .focus ()
  • Свойство автофокуса во входном теге
  • tabindex = "- 1" для тега ввода
  • putCursorAtEnd () найден здесь
  • Завершение вышеупомянутого в таймере с использованием setTimeout ()

Должен быть способ сделать это с Opera Mobile. Все остальные Javascript работают без проблем.

1 Ответ

1 голос
/ 21 апреля 2011

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

В настройках ScanWedge есть опция для отправки префикса со штрих-кодом и возможность включить экранирование в префиксе (должен быть включен), я просто использую префикс \ x0D, что означает отправку нажатия клавиши ввода перед штрих-кодом.

Это работает, потому что метод focus () выделяет текстовое поле, но не вставляет курсор, однако, если клавиша ввода нажата, когда текстовое поле выделено, курсор вставляется.

...