理论上,自动对焦在移动Safari(http://caniuse.com/#feat=autofocus)中完全不受支持。然而,我们看到这种非常奇怪的行为,当touchstart
事件绑定到document
时(无论函数是否有任何行为)当页面上的任何地方发生点击时输入autofocus
变为焦点,屏幕键盘显示。
这可以在iOS模拟器中使用iOS 8重现。这是重现问题的最小html和javascript:
<html>
<head>
<script>
document.addEventListener("touchstart", function() {});
</script>
</head>
<body>
<input type="text">
<input type="text" autofocus="autofocus">
</body>
</html>
这是一个小伙伴:http://jsfiddle.net/qd858nob/
只需单击输入外的任何位置,第二个输入将变为自动对焦。理想情况下,我很乐意找到解决此问题的全局解决方案,而无需从所有输入元素中删除自动对焦。
答案 0 :(得分:2)
有关此问题的更广泛讨论,请参阅in iOS8 using .focus() will show virtual keyboard and scroll page after touch。它看起来像是一个iOS 8&#34; bug&#34;。我已经向Apple提交了一份报告 - 你能做的最好是同样的,并希望它在他们的名单上泡得足够高,以便尽快解决。