Подтвердить что ты не робот

Есть ли способ обнаружения функции IE10 "Caps Lock is on"?

Как вы, наверное, знаете, существует относительно простой способ, более или менее надежно, определить, включен ли Caps Lock, особенно когда пользователь начинает вводить пароль поля. Тем не менее, совершенно неизвестно, что IE10 поддерживает эту функцию автоматически, без необходимости какого-либо дополнительного кодирования (source, прямая ссылка на скриншот и простая демонстрация). Таким образом, теперь я столкнулся с проблемой, потому что, если я добавлю аналогичную функциональность Javascript, пользователи IE10 будут видеть два "пузыря" с предупреждением, созданное моим script и созданным их браузером; это может показаться уродливым или даже запутать. Вот почему я ищу решение, как определить, имеет ли браузер встроенные функции или нет; Я надеюсь, что это вызывает какое-то событие или меняет какое-то свойство, но я не нашел ничего подобного.

Я могу просто искать Trident/6.0 в строке пользовательского агента, но я бы предпочел избежать обнаружения браузера; это, вероятно, также потребует некоторого обслуживания кода, если другие браузеры добавляют аналогичную функцию.

Если нет надежного решения, я попрошу команду IE добавить возможность обнаружения "cap-lock-is-on" и, возможно, также редакторы спецификации HTML, чтобы требовать от продавцов сделать это.

4b9b3361

Ответ 1

Вы можете определить, будет ли IE показывать собственное предупреждение о блокировке крышки, проверив значение свойства msCapsLockWarningOff в самом document. Кроме того, вы можете включать и выключать это:

document.msCapsLockWarningOff = true;

Fiddle: http://jsfiddle.net/jonathansampson/mqcHA/1/
MSDN: свойство msCapsLockWarningOff

Ответ 2

Я предлагаю вам проверить этот урок http://www.upsdell.com/BrowserNews/res_sniff.htm

вы можете попробовать что-то вроде этого

<!--[if gte IE 10]>
    <script type="text/javascript">
        var isTrulyIE = true;
    </script>
<![endif]-->

или версия javascript для обнаружения и прототипирования версии браузера

 this.isIE10 = (this.version == "10.0") || (this.ua.indexOf("trident/6") != -1);

вы также можете попробовать script, определенный Microsoft, чтобы решить версию браузера IE http://support.microsoft.com/kb/167820

Ответ 3

Вы можете захватить событие клавиатуры и обнаружить ключ, но вы не можете определить STOP-блокировки.