我有一个简单的检测是否在 Android 和 iOS 上打开了软件键盘:
$(document).on({
focus: function() { keyboardOpened = true; },
blur: function() { keyboardOpened = false; }
}, 'input'); //catch all focus and blur events fired on any input element
它用于防止用户编写消息时执行某些操作(例如忽略调整大小事件)。
它适用于除 iOS 上的 Chrome 之外的所有浏览器。我已在网站上添加了 Firebug Lite,但没有错误,只是事件从未触发,并且打开 SW 键盘时网络无法正常工作。
这是一个小提琴:http://jsfiddle.net/WYULR http://jsfiddle.net/WYULR(单击输入并查看警报)
有人知道这个的原因或解决方法吗?
我也得到了这个:( 我的解决方案是检测 ipad + chrome 是否使用:
var isCriOS = /CriOS/.test(navigator.userAgent);
I tried https://github.com/gabceb/jquery-browser-plugin https://github.com/gabceb/jquery-browser-plugin+ webkit 类型区分代码在这里找到如何检测chrome和safari浏览器(webkit) https://stackoverflow.com/questions/12625876/how-to-detect-chrome-and-safari-browser-webkit但我无法让它发挥作用。
如果是 ipad+chrome,请为该字段应用“点击”事件来执行相同的操作...只有当您唯一的焦点来自用户点击时,这才有效,因为调用 .focus() 不会触发它.. .但在这种情况下,您可以在 .focus() 之后调用通过单击事件归因的函数。这看起来有点 hackish,所以我决定测试 vanilla js .onfocus 事件并证明它也没有触发。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)