Question

As you probably know, there is a relatively simple way how to, more or less reliably, detect whether Caps Lock is on, especially when user starts typing into password fields. However, it is a quite unknown fact that IE10 supports this feature automatically, without need for any additional coding (source, direct link to screenshot and a simple demo). Thus, now I'm facing a problem because if I add a similar Javascript funcionality, IE10 users will see two "bubbles" with the warning, one created by my script and one created by their browser; this might look ugly or even be confusing. This is why I'm looking for a solution how to detect whether browser has this functionality built-in or not; I hope it triggers some event or changes some property, but I haven't found anything like this.

I might just look for Trident/6.0 in user agent string, but I'd rather like to avoid browser detection; it would probably also require some code maintenance if other browsers add similar feature.

If there is no reliable solution, I'll ask the IE Team to add the ability of "caps-lock-is-on feature" detection and probably also the editors of HTML specification to require vendors to do this.

Was it helpful?

Solution

You can determine whether IE will be showing its own caps-lock warning by checking the value of the msCapsLockWarningOff property on the document itself. Further, you can toggle this on and off:

document.msCapsLockWarningOff = true;

Fiddle: http://jsfiddle.net/jonathansampson/mqcHA/1/
MSDN: msCapsLockWarningOff property

OTHER TIPS

I suggest you checkout this tutorial http://www.upsdell.com/BrowserNews/res_sniff.htm

you may try something like this

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

or javascript version on detecting and prototyping the browser version

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

you may also try the script defined by microsoft to decide the IE browser version http://support.microsoft.com/kb/167820

You can capture the keyboard event and detect the key, but you cannot determine the caps-lock STATE.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top