Ben*_*lau 5 javascript html5 mobile-safari autofocus ios
理论上,自动对焦在移动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>
Run Code Online (Sandbox Code Playgroud)
这里有一个jsfiddle:http://jsfiddle.net/qd858nob/
只需单击输入外的任何位置,第二个输入将变为自动对焦.理想情况下,我很乐意找到解决此问题的全局解决方案,而无需从所有输入元素中删除自动对焦.
请参阅iOS8 中使用 .focus() 将在触摸后显示虚拟键盘和滚动页面,以对此问题进行更广泛的讨论。看起来这是 iOS 8 的一个“bug”。我已经向苹果提交了一份报告——你能做的最好的就是同样的事情,并希望它在他们的列表中占据足够高的位置,以便尽快修复。