iOS - 删除带有焦点输入元素的 iFrame 使光标保持可见并保持键盘打开

Posted

技术标签:

【中文标题】iOS - 删除带有焦点输入元素的 iFrame 使光标保持可见并保持键盘打开【英文标题】:iOS - removing an iFrame with focused input element keeps the cursor visible and keyboard open 【发布时间】:2016-07-14 16:01:15 【问题描述】:

ios 中打开: https://jsfiddle.net/rLLvd18q/31/

我有一个带有输入元素的 iFrame 页面。外部页面有一个从 DOM 中删除 iFrame 的按钮。在 iOS 9.3.2(我在 iPhone 6s 上测试过)的 Safari/Chrome 中,在输入聚焦时单击该按钮会导致 iFrame 被删除,但光标在屏幕上保持闪烁。此外,键盘保持打开状态(单击键什么都不做)。关闭键盘后,单击屏幕上的任何其他位置都会导致键盘再次弹回。

我已经尝试在单击按钮后从托管页面向 iFrame 发布消息并执行操作

document.activeElement.blur()

在 iFrame 内。没有帮助...我的想法不多了...

【问题讨论】:

我也有这个问题.. 另一个有同样问题的... 【参考方案1】:

我一直试图在我的项目中解决这个问题,我注意到 iframe 不是活动元素。一种可能的解决方法是以编程方式聚焦 iframe,然后对其进行模糊处理。

这对我来说很好。我查看了 iOS 论坛,这似乎是 iOS9 的 webview 错误,可能存在于 iOS10 中。

【讨论】:

以上是关于iOS - 删除带有焦点输入元素的 iFrame 使光标保持可见并保持键盘打开的主要内容,如果未能解决你的问题,请参考以下文章

iframe 内元素的 Tabindex

输入焦点时隐藏ios设备上的键盘

是否有可能强制Ios浏览器从输入焦点到另一个元素?

提交后将焦点设置在输入元素上

css 在输入元素CSS上删除用户代理蓝色边框焦点样式

在 iOS Safari 中输入焦点后无法滚动的模式(固定元素)