【问题标题】:What event activates the keyboard in mobile safari什么事件在移动 Safari 中激活键盘
【发布时间】:2011-04-09 23:27:03
【问题描述】:

所以焦点事件导致软键盘出现输入字段。我试图找到一种方法来阻止这种情况发生。原因是,你们中的一些人可能知道,点击事件在发生任何事情之前有 300 毫秒的延迟。

为了解决这个问题,我们实现了 Google 的 FastButton http://code.google.com/mobile/articles/fast_buttons.html,在进行了小幅调整以防止第二次鼠标按下后,它运行良好,但是如果我们点击一​​个按钮并转到同样具有输入文本字段的第二个页面,键盘仍然弹出。

我已经尝试过阻止 touchend、mousedown、mouseend、click、再次触发,这有助于它在文本字段上没有闪烁的光标但键盘仍然存在。如果我模糊了该字段,您仍然会看到键盘弹出然后消失,这是不可接受的。

有什么想法吗?

【问题讨论】:

    标签: iphone html mobile mobile-safari cordova


    【解决方案1】:

    嗯...您是否考虑过在加载时禁用带有disabled="disabled" 的字段,然后才启用它们?它可能会让您绕过启动键盘的初始聚焦状态,以便您可以先模糊,然后启用?

    【讨论】:

    • 嘿,感谢您的回复,我已尝试将字段设置为只读并在 300 毫秒后将其重置。但这是最后一种方法,理想情况下,我希望能够阻止导致键盘出现的任何操作
    • 是否有测试 URL 或 jsbin 测试用例可以证明这一点?对于为什么输入首先得到关注,我有点难过。
    • 因为点击事件触发了两次,如果你推荐她:code.google.com/mobile/articles/fast_buttons.html。我们在触摸开始时激活按钮按下事件,然后 300 毫秒后标准 safari 点击启动,在我们的第二页加载后触发
    • 啊...我完全误解了这个问题。问题在于ghost-click-buster 的工作方式。它以捕获模式在 300 毫秒内侦听二次点击。问题是所有框架都会在onunload时清理他们的监听器以防止泄漏,所以当你更改URL时,buster立即被拆除并且不在那里进行破坏,但点击已经进入队列。我认为的解决方案是在导致页面切换的特定触摸侦听器上防止默认 only 。这将防止出现鬼点击,因此没有键盘。
    • 感谢您的建议,破坏者没有被拆除,它附加在文档级别。如果第二次点击是在按钮、列表、超链接等上,它工作得很好,并且正确地破坏了第二次点击。它只是如果它在一个输入字段上,它会正确地破坏它,这样输入字段上就没有光标但是软键盘仍然弹出。
    猜你喜欢
    • 1970-01-01
    • 2013-08-01
    • 2019-05-19
    • 1970-01-01
    • 2021-08-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 2010-10-15
    相关资源
    最近更新 更多