如何将HTML文本字段集中在iPhone上(导致键盘出现)?

Ros*_*oss 24 html javascript iphone

我正在编写一个iPhone网络应用程序,我想在页面加载时自动聚焦文本字段,然后调出键盘.通常的Javascript:

input.focus();
Run Code Online (Sandbox Code Playgroud)

似乎不起作用.有任何想法吗?

小智 18

如果你从点击事件中激活焦点,它将只显示键盘,所以在页面上放一个按钮,其中一个onclick可以完成焦点,它将显示键盘.完全没用,除了验证(点击提交验证码专注于无效元素)


rob*_*cat 6

编辑:以下不再适用于iOS - UIWebView确实允许自动对焦和主屏幕链接用于自动对焦,但他们禁用了许多版本之前.

autofocus(见下文)属性不会在移动Safari浏览器的URL工作,但如果你不工作:

  1. 使用UIWebView
  2. 使用主屏幕链接

输入的字体大小需要足够大,以避免iOS10缩放双击(现在视口始终可缩放)并设计页面大小以使其适合屏幕(否则在页面加载时会出现奇怪的时间/ race in zoom,或者如果可滚动,则字段有时不会正确地居中于屏幕).

autofocus:执行此操作的HTML5规范是输入标记自动聚焦属性.但iOS忽略了这一点,大概是为了在导航到页面时没有弹出触摸键盘的更干净的UI.是一个演示自动对焦属性的页面.在HTML5之前,您将在window.onload事件中调用element.focus().但是,除了onclick事件的处理程序之外,iOS上不支持focus()调用.


Dro*_*ror 3

注意:这个答案是旧的,可​​能与新版本无关......


它对您没有任何帮助,但线程的最后一个发帖者写道,这是 webkit 引擎的一个错误。
我无法判断这是否是一个已验证的错误...

来自机器后面的最后一篇文章(因为原始的似乎不起作用):

我正在纯 XHTML MP / Ecmascript MP / WCSS 中开发我的应用程序。因此,使用本机平台浏览器控制 api 对我来说确实不是一个选择。是的,你提到的行为与我的行为相同。我在 webkit.org 的 bugzilla 中搜索了他的主题,发现这确实是一个已报告的错误。文本框的 focus() 确实会突出显示该元素,但不会在其中提供克拉以便用户开始输入文本。使用“peppe@peppe.net”提到的计时器也没有帮助。

这种行为在使用 webkit 引擎的平台(s60、iphone、android)中很常见。

所以到目前为止我还没有看到这个问题的解决方案。

希望这可以帮助