Как можно автофокусироваться на поле формы в iPhone Safari? - PullRequest
15 голосов
/ 24 апреля 2011

Я пытаюсь, чтобы конкретное поле формы автоматически фокусировалось в браузере Safari на iPhone. Я думал, что это будет довольно просто, но мне не удается заставить это работать. Итак, это на самом деле невозможно или я упускаю что-то супер-очевидное (что я подозреваю)? Вот код, который я использую:

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
   function formfocus() {
      document.getElementById('element').focus();
   }
   window.onload = formfocus;
</script>
</head>
<body>

<form>
<input/>
<input id="element" autofocus/>
<input/>
</form>

</body>
</html>

Вы можете видеть, что я пытаюсь получить фокус дважды, один раз через js и один раз через атрибут HTML "aufofocus" в поле ввода. Ни один не делает трюк. Это работает в браузерах рабочего стола, но когда я открываю страницу на моем iPhone 4, никаких кубиков, то есть я должен установить фокус вручную, нажав на одно из полей формы.

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

Спасибо за любую помощь!

Ответы [ 3 ]

15 голосов
/ 15 сентября 2011

Согласно этой странице автофокусировка не поддерживается в iphone / ipad из соображений удобства использования.

0 голосов
/ 06 февраля 2015

Попробуйте .focus () внутри setTimeout ().

setTimeout(function() {
jQuery('#element').focus();
}, 500);

Надеюсь, это будет работать на всех.

0 голосов
/ 24 апреля 2011

Попробуйте указать тип элемента ввода

<input type="email" id="element" autofocus/>

и в качестве запасного варианта вы можете использовать

<script type="text/javascript">
    if (!("autofocus" in document.createElement("input"))) {
      document.getElementById("element").focus();
    }
</script>
...