绑定到touchstart事件,导致自动对焦关注Mobile Safari中的任何点击

时间:2014-10-31 21:11:41

标签: javascript ios html5 mobile-safari autofocus

理论上,自动对焦在移动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/

只需单击输入外的任何位置,第二个输入将变为自动对焦。理想情况下,我很乐意找到解决此问题的全局解决方案,而无需从所有输入元素中删除自动对焦。

1 个答案:

答案 0 :(得分:2)

有关此问题的更广泛讨论,请参阅in iOS8 using .focus() will show virtual keyboard and scroll page after touch。它看起来像是一个iOS 8&#34; bug&#34;。我已经向Apple提交了一份报告 - 你能做的最好是同样的,并希望它在他们的名单上泡得足够高,以便尽快解决。