禁用软键盘(移动浏览器)的大写锁定检测

时间:2017-06-04 16:03:28

标签: javascript keyboard-events

对于密码输入,我有一些JavaScript检查是否按下大写锁定以警告用户。它使用"标准"这样做的方式 - 查看keyboardEvent.keyCode和keyboardEvent.shiftKey(以及古代浏览器的其他一些废话)。

问题是这对于移动用户来说很烦人(至少iOS,没有来自Android用户的报道)因为"大写锁定"是获得大写字母的正常方式。

目前我正在使用一些严重的用户代理嗅探来禁用此功能,但我觉得必须有一种不那么脆弱的方式来了解这是一个软(移动)键盘和大写的大写锁是正常的事情方式(所以我放弃了关于它的大肚子!)

1 个答案:

答案 0 :(得分:0)

所以,这是不完美的,这就是我提出的:

$(document).ready(function() {
        function hasTouch() {
                try {   
                        document.createEvent("TouchEvent");
                } catch (e) {
                        return false;
                }
                return true;
        }
        capsLockQuiet = hasTouch();
        ...
});