Автофокус теоретически полностью не поддерживается в мобильном Safari (http://caniuse.com/#feat=autofocus). Однако мы наблюдаем это очень странное поведение, когда, когда событие touchstart
связано с document
(независимо от того, имеет ли функция какое-либо поведение или нет), когда щелчок происходит в любом месте страницы, первый ввод с autofocus
становится сфокусированным, и отображается экранная клавиатура. .
Это можно воспроизвести с помощью iOS 8 в симуляторе iOS. Вот минимальный html и javascript для воспроизведения проблемы:
<html>
<head>
<script>
document.addEventListener("touchstart", function() {});
</script>
</head>
<body>
<input type="text">
<input type="text" autofocus="autofocus">
</body>
</html>
А вот jsfiddle: http://jsfiddle.net/qd858nob/
Просто щелкните в любом месте за пределами входов, и второй вход станет автоматически сфокусированным. В идеале я хотел бы найти глобальное решение, которое решает эту проблему, не удаляя автофокус со всех наших элементов ввода.