移动 Safari - 使用 Javascript 关闭键盘

Posted

技术标签:

【中文标题】移动 Safari - 使用 Javascript 关闭键盘【英文标题】:Mobile Safari - Dismiss Keyboard with Javascript 【发布时间】:2017-01-27 18:33:35 【问题描述】:

我试图通过 JS 关闭键盘以响应按钮按下,但我没有任何运气。

设置:

    我有一个textarea,上面绑定了接受和取消按钮。 点击取消按钮后,我的视图对象将调用textAreaElement.blur()。 然后它将移除接受和取消按钮。

预期:

字段失去焦点(视觉和其他方面)。 键盘已关闭。

实际:

字段似乎失去焦点(视觉上没有显示光标),并且以编程方式。 键盘仍然存在。

我已经尝试过通常的 Google,但他们似乎都认为在焦点元素上调用 blur 就足够了。一位用户甚至建议致电$('input').blur() 以确保所有字段都被模糊,但这似乎并没有什么不同。

【问题讨论】:

【参考方案1】:

...我刚刚弄清楚为什么会这样。

我提到我正在删除该字段的“接受”和“取消”按钮。具体发生了以下情况:

    致电textAreaElement.blur()。 动画按钮消失。 动画完成后,buttons.remove()

当取消按钮收到点击时,它获得焦点(键盘保持活动状态)。当取消按钮随后在动画完成回调中被移除时,焦点被应用到前一个可聚焦元素,即textarea

所以我做了这样的效果:

textarea.blur() # 已经没有焦点了。 button.remove() # 移除按钮,将焦点重新应用到文本区域。

解决方案是:

    动画按钮消失。 等待动画完成,buttons.remove()。 致电textAreaElement.blur()

【讨论】:

以上是关于移动 Safari - 使用 Javascript 关闭键盘的主要内容,如果未能解决你的问题,请参考以下文章

从 WKWebView 调用时,无法使用 JavaScript 在移动 Safari 中打开链接

如何使用 Javascript 在移动 Safari 和所有其他浏览器上录制音频?

如何在移动 Safari 中使用 javascript 突出显示文本选择

强制链接从带有 javascript 的 Web 应用程序在移动 Safari 中打开

在移动 Safari 中按下后退按钮后,Javascript 停止在 iframe 中执行

移动 safari (iOS) 中的 javascript 不会下载日历邀请