Задача очень специфичная, возникает только если вы разрабатываете web приложение для КПК.

Мне её предложил мой друг. Он реализовывал сбор информации о остатках на складе с помощью сканеров. Т.е. специальные аппараты под управлением Windows Mobile со считыванием штих кода, связанные по WiFi с сервером где храниться номенклатура товара. Реализовано было как web приложение, тонкий, да не очень клиент — Opera. Одна из задач — экономить время рабочих на работу с интерфейсом и минимизировать или совсем убрать повторяющиеся рутинные операции. Под задача — автоматический перевод фокуса на input'ы.

Выяснилось, что Opera метод focus для input работает не так как ожидалось — при вызове этого метода для input KEY_DOWN этим элементом не ловиться.


Решение оказалось простым и найдено скорее случайно. Выяснилось что focus корректно работает для textarea. Там где нужно можно textarea привести css к такому же виду как input.

Работающий код-пример:

  1. <html>
  2. <body>
  3. <form>
  4.   <textarea name="title" id="title" >sample</textarea>
  5.   <strong></strong>
  6. </form>
  7. </body>
  8. <script>
  9.   window.focus();
  10.  
  11.   var v = document.getElementById('title');
  12.   v.onfocus = function()
  13.   {
  14.    document.getElementsByTagName('strong')[0].innerHTML = 'Yes!!';
  15.   }
  16.   v.select();
  17.   v.focus();
  18. </script>
  19. </html>
* This source code was highlighted with Source Code Highlighter.