javascript - ¿Hay alguna manera de detectar la función "Caps Lock is on" de IE10?
internet-explorer-10 capslock (3)
Como probablemente sepa, existe una forma relativamente sencilla de detectar , con mayor o menor fiabilidad, el bloqueo de mayúsculas y minúsculas , especialmente cuando el usuario comienza a escribir en los campos de contraseña. Sin embargo, es un hecho bastante desconocido que IE10 admite esta función automáticamente, sin necesidad de ningún código adicional ( source , enlace directo a la captura de pantalla y una simple demostración ). Por lo tanto, ahora estoy enfrentando un problema porque si agrego una funcionalidad de Javascript similar, los usuarios de IE10 verán dos "burbujas" con la advertencia, una creada por mi script y otra creada por su navegador; Esto puede parecer feo o incluso ser confuso. Es por eso que estoy buscando una solución para detectar si el navegador tiene esta funcionalidad incorporada o no; Espero que desencadene algún evento o cambie alguna propiedad, pero no he encontrado nada como esto.
Podría buscar Trident/6.0
en la cadena de agente de usuario, pero preferiría evitar la detección del navegador; Es probable que también requiera cierto mantenimiento de código si otros navegadores agregan una función similar.
Si no hay una solución confiable, le pediré al Equipo de IE que agregue la capacidad de detección de "función de bloqueo de mayúsculas está activada" y, probablemente, también a los editores de la especificación HTML para exigir que los proveedores hagan esto.
Le sugiero que consulte este tutorial http://www.upsdell.com/BrowserNews/res_sniff.htm
puedes probar algo como esto
<!--[if gte IE 10]>
<script type="text/javascript">
var isTrulyIE = true;
</script>
<![endif]-->
o versión de JavaScript en la detección y creación de prototipos de la versión del navegador
this.isIE10 = (this.version == "10.0") || (this.ua.indexOf("trident/6") != -1);
También puede probar el script definido por Microsoft para decidir la versión del navegador IE http://support.microsoft.com/kb/167820
Puede capturar el evento del teclado y detectar la tecla, pero no puede determinar el estado de bloqueo de mayúsculas.
Puede determinar si IE mostrará su propia advertencia de bloqueo de mayúsculas comprobando el valor de la propiedad msCapsLockWarningOff
en el propio document
. Además, puedes activar y desactivar esto:
document.msCapsLockWarningOff = true;
Fiddle: http://jsfiddle.net/jonathansampson/mqcHA/1/
MSDN: propiedad msCapsLockWarningOff