绑定到触摸启动事件,导致自动对焦集中在Mobile Safari中的任何单击上
Binding to a touchstart event causing autofocus to focus on any click in Mobile Safari
理论上,移动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>
这里有一个jsfiddle:http://jsfiddle.net/qd858nob/
只需点击输入之外的任何位置,第二个输入就会自动对焦。理想情况下,我很想找到一个全局解决方案来解决这个问题,而不必从我们所有的输入元素中删除自动对焦。
请参阅iOS8中使用.focus()将显示虚拟键盘并在触摸后滚动页面,以便对此问题进行更广泛的讨论。它看起来像是iOS 8的"bug"。我已经向苹果公司提交了一份报告——你们能做的最好的事情也是如此,希望它能在他们的名单上很快得到解决。
相关文章:
- 以编程方式选择文本Mobile Safari
- Mobile Safari、jQuery以及绑定到未来的DOM元素
- 禁用Mobile Safari中的同源策略
- iOS上的Mobile Safari在大页面上崩溃
- 在iPad上运行时,Mobile Safari中即将切换选项卡的Pagehide事件不会触发
- Mobile Safari在加载JS文件时挂起
- Mobile Safari是否清理DOM应用程序缓存?何时清理
- Mobile Safari (iPhone/iPad) 在动态插入大量 DOM 元素时崩溃
- UIWebview open URL in mobile safari using javascript
- jQuery $.get 不适用于 Phonegap 或 Mobile Safari 中的“本地”文件
- Mobile Safari 忽略了我的自动对焦 jQuery 事件
- JavaScript 方法在 Mobile Safari 与 Android Chrome 中无法一致执行
- 谷歌地图地理编码PHP可以在IE中工作,但不能在Chrome/mobile、Edge或Safari/mobile中工作.
- Safari Mobile-崩溃-三个JS纹理未加载
- Safari Mobile上未触发$(window).load(function)事件
- 使onclick功能与ENTER一起工作;Go"Safari Mobile(iOS)上的按钮
- 在Safari(如Safari Mobile)中调整字体大小的百分比
- HTML+JS: Set value of <select> in Safari Mobile (ios)
- Span onclick在webkit (safari mobile)中不起作用
- 在iPhone上使用Safari Mobile在弹出窗口中打开URL时出现问题.忽略参数