我有一个单页网络应用程序。每次我点击屏幕时都会弹出键盘。
DOM 中根本没有文本输入框。
如何调试键盘弹出的原因。
您可以在https://blight.ironhelmet.com查看这种奇怪行为的示例。和 https://np.ironhelmet.com
更新一条线索:用户现在报告说,在下拉菜单从 DOM 中删除很久之后,一直弹出下拉选择旋转器,而不是键盘。
最佳答案
对于 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
关于safari - iOS10 Safari 键盘弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39802896/