2014-10-31 10 views
5

Autofokus jest teoretycznie całkowicie nieobsługiwany w mobilnym Safari (http://caniuse.com/#feat=autofocus). Widzimy jednak to bardzo dziwne zachowanie, gdy zdarzenie document jest powiązane z document (niezależnie od tego, czy dana funkcja ma jakiekolwiek działanie), gdy kliknięcie ma miejsce w dowolnym miejscu na stronie, pierwsze wejście z wartością autofocus zostaje skupione, a klawiatura ekranowa wyświetla .Wiązanie ze zdarzeniem dotykowym powodującym, że autofokus skupia się na dowolnym kliknięciu w Mobile Safari

Można to odtworzyć za pomocą iOS 8 w symulatorze iOS. Oto minimalne HTML i JavaScript, aby odtworzyć problem:

<html> 
<head> 
<script> 
document.addEventListener("touchstart", function() {}); 
</script> 
</head> 

<body> 
<input type="text"> 
<input type="text" autofocus="autofocus"> 
</body> 
</html> 

A oto jsfiddle: http://jsfiddle.net/qd858nob/

Wystarczy kliknąć w dowolnym miejscu poza wejść, a drugie wejście będzie autofocused. Idealnie chciałbym znaleźć globalne rozwiązanie, które rozwiązuje to bez konieczności usuwania autofokusa z wszystkich naszych elementów wejściowych.

+1

Podaję zasadniczo ten sam problem, ale wywołuję programowo przy użyciu funkcji .focus() przy ładowaniu strony. Gdy tylko naciśniesz w dowolnym miejscu na stronie, fokus przechodzi do wejścia, a klawiatura wyskakuje. Czy zgłosiłeś to Apple? To nowość w systemie iOS 8. – Dan

Odpowiedz

Powiązane problemy