【问题标题】:iOS keyboard doesn't close, triggered by an input within an iframeiOS 键盘未关闭,由 iframe 中的输入触发
【发布时间】:2019-11-12 23:10:03
【问题描述】:

我的网页上有一个模式窗口,其中包含一个<iframe>,页面存储在远程服务器上。此页面包含带有一些 <input> 元素的表单。当用户点击模态框上的关闭按钮时,带有 iframe 的模态框将隐藏。

问题: 如果用户开始在 <iframe> 内的 <input> 中输入内容,然后关闭模式,则键盘不会关闭,直到他按下 Done 按钮。

我已经简化了这个示例并移除了模态实体并呈现了两个按钮:一个是隐藏模态,另一个是从 DOM 中移除它。

我尝试使用window.activeElement 将焦点显式设置为根页面上的不同元素。(您可以在演示中查看),尝试在iframeiframe.contentWindow 上调用.blur() 方法。 在我的应用程序中<iframe> 隐藏,但我已尝试将其从页面中删除。

当前行为:

  • 用户开始在<input><iframe> 中输入内容
  • iOS 键盘打开
  • 移除/隐藏 iframe
  • 即使<input> 不存在或隐藏,iOS 键盘仍然打开。

我假设如果不再显示任何触发它的元素,则应该隐藏键盘,就像在 Android/Chrome 上所做的那样。

在这种情况下我有几个问题:

  • 我可以在我的应用中以某种方式解决此问题吗?
  • 如果是 iOS 或 WebKit 中的错误,Apple 或社区是否提供了一些错误跟踪器来解决此类问题?

【问题讨论】:

    标签: javascript html ios safari webkit


    【解决方案1】:

    使用响应者链:UIApplication.sharedApplication().sendAction("resignFirstResponder", to:nil, from:nil, forEvent:nil)

    使用 UIView 的 endEditing: self.view.endEditing(true)

    【讨论】:

    • 它不是原生环境,只是一个网站,我无权访问这个SDK。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    • 2019-07-21
    • 2020-01-30
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    • 2013-02-20
    相关资源
    最近更新 更多