L'autofocus è, in teoria, completamente non supportato in Safari mobile (http://caniuse.com/#feat=autofocus). Tuttavia, stiamo osservando questo strano comportamento quando un evento touchstart
è associato a document
(indipendentemente dal fatto che la funzione abbia o meno un comportamento) quando un clic avviene ovunque nella pagina, il primo input con autofocus
diventa attivo e la tastiera su schermo viene visualizzata .Collegamento a un evento touchstart che fa sì che l'autofocus si concentri su qualsiasi clic in Mobile Safari
Questo può essere riprodotto utilizzando iOS 8 nel simulatore iOS. Ecco il codice html e javascript minimo di riprodurre il problema:
<html>
<head>
<script>
document.addEventListener("touchstart", function() {});
</script>
</head>
<body>
<input type="text">
<input type="text" autofocus="autofocus">
</body>
</html>
Ed ecco un jsfiddle: http://jsfiddle.net/qd858nob/
Basta fare clic su un punto qualsiasi all'esterno degli ingressi, e il secondo ingresso diventerà autofocused. Idealmente mi piacerebbe trovare una soluzione globale che risolva tutto ciò senza dover rimuovere l'autofocus da tutti i nostri elementi di input.
Sto colpendo fondamentalmente lo stesso problema, ma chiamando .focus() a livello di codice al caricamento della pagina. Non appena viene toccato un punto qualsiasi della pagina, la messa a fuoco viene spostata sull'ingresso e viene visualizzata la tastiera. Hai segnalato questo ad Apple? È nuovo per iOS 8. – Dan