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.
The getModifierState() method returns true if a modifier is active; otherwise, it returns false . The event. getModifierState('CapsLock') can be used to detect if the caps lock is on.
Hit the Windows key & type: Control Panel and then open it. Then steer to the Key Settings tab & double-click on Caps Lock. Now uncheck 'Displays Caps Lock Status on Screen' & reboot your PC.
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
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With