Comment Pouvez-vous autofocus sur un champ de formulaire dans iPhone Safari?

je suis en train d'essayer d'avoir un champ de formulaire particulier se concentrer automatiquement dans un navigateur Safari sur iPhone. Je pensais que ce serait assez simple, mais je ne suis pas pour obtenir la gestion de ce travail. Alors, est-ce vraiment impossible ou est-ce que je manque quelque chose de très évident (ce que je soupçonne)? Voici le code que j'utilise:

<!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>

vous pouvez voir que j'essaie d'obtenir le focus deux fois, une fois via js et une fois via L'attribut HTML" aufofocus " sur le champ d'entrée. Ni fait le tour. Cela fonctionne sur les navigateurs de bureau, mais quand j'ouvre la page sur mon iPhone 4, pas de dés, qui est, je dois régler la mise au point manuellement en cliquant sur l'un des champs du formulaire.

en fin de compte ce que je voudrais est d'ouvrir le site web sur le navigateur mobile et avoir l'accent sur un champ de formulaire, y compris le clavier ouvert pour commencer à taper.

Merci pour votre aide!

14
demandé sur Tuan Dang 2011-04-24 20:35:51

3 réponses

Selon cette page , mise au point automatique n'est pas pris en charge iphone/ipad pour des raisons de convivialité.

14
répondu Veera 2011-09-15 17:53:53

essayer de donner à l'élément d'entrée un type

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

et pour le repli vous pouvez utiliser

<script type="text/javascript">
    if (!("autofocus" in document.createElement("input"))) {
      document.getElementById("element").focus();
    }
</script>
0
répondu Maverick 2011-04-24 16:41:13

essayez le .focus() à l'intérieur de setTimeout().

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

j'espère que ça marcherait sur tout.

-1
répondu Leopathu 2015-02-06 07:05:32