iOS10 Safari键盘弹出窗口

时间:2016-10-01 04:02:37

标签: safari keyboard ios10

我有一个单页网页应用。每次点击屏幕时都会弹出键盘。

DOM中根本没有文本输入框。

如何调试键盘弹出的原因。

您可以在https://blight.ironhelmet.comhttps://np.ironhelmet.com

查看此奇怪行为的示例

用线索更新:用户现在报告的是,在从DOM中删除该下拉列表之后,下拉选择spiner一直在弹出,而不是键盘。

2 个答案:

答案 0 :(得分:3)

对于React用户:

我在使用React-Router的React单页面应用程序中发生了同样的事情。我没有编写代码来从DOM中删除元素,但当然React会为你做这些。

在我的网站上,有React组件包含一到四个输入字段。在出现任何此类组件之后,然后隐藏(已卸载/不再渲染),则只要用户点击链接,键盘就会弹出。这使该网站无法使用。使其停止的唯一方法是重新加载页面。

解决方法:在document.activeElement.blur() 中为我的componentWillUnmount字段周围的包装器组件调用<input>就可以了。

componentWillUnmount()
{
  if (document && document.activeElement)
  {
    document.activeElement.blur();
  }
}

请注意,调用window.activeElement.blur()似乎没有做任何事情。

Apple支持论坛中有一个关于此问题的帖子: https://discussions.apple.com/thread/7692319

答案 1 :(得分:1)

在我从DOM中删除键盘后,看起来键盘正在输入对输入的引用。

我在删除元素时添加了一个测试,看它是否是当前的activeElement,然后,如果是这样,在删除之前调用document.activeElement.blur()。似乎到目前为止已经解决了这个问题。