2011-08-11 17 views
19

Como probablemente sepa, hay una manera relativamente simple de, más o menos fiablemente, detect whether Caps Lock is on, especialmente cuando el usuario comienza a escribir campos de contraseña. Sin embargo, es un hecho bastante desconocido que IE10 admite esta característica automáticamente, sin necesidad de ninguna codificación adicional (source, direct link to screenshot y a simple demo). Por lo tanto, ahora estoy enfrentando un problema porque si agrego una funcionalidad 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.¿Hay alguna manera de detectar la función "Bloq Mayús activado" de IE10?

Podría buscar Trident/6.0 en la cadena del agente de usuario, pero prefiero evitar la detección del navegador; probablemente también requerirá mantenimiento de código si otros exploradores agregan características similares.

Si no hay una solución confiable, le pediré al Equipo IE que agregue la capacidad de detección de "función de bloqueo de mayúsculas y minúsculas" y probablemente también a los editores de la especificación HTML para exigir a los proveedores que lo hagan.

+2

No hay un estándar para la exposición de este comportamiento predeterminado. Así que no hay forma de probar la función, por lo que la coincidencia del agente de usuario es la única forma. O podría tratar de colocar su burbuja debajo de la burbuja predeterminada (suponiendo que la burbuja de los navegadores esté siempre en la parte superior), por lo que está bloqueada y no es "visible" – Gerben

+0

@Gerben Gracias por su comentario. Como parece que su resumen describe respetablemente el estado actual y las posibles soluciones, puede agregar su respuesta como respuesta; Probablemente lo configure como aceptado si no aparece ninguna solución mágica. – duri

+0

¿Tiene algún efecto en el comportamiento del globo la configuración del atributo 'novalidate' en el formulario que lo contiene? La documentación parece sugerir que esto desactiva las funciones de validación integradas, aunque no está claro si es cuando se envía el formulario o si se suprime la verificación en línea de los elementos ... – Fraser

Respuesta

-1

Puede capturar el evento del teclado y detectar la clave, pero no puede determinar el estado de bloqueo de mayúsculas.

+0

Gracias por su interés en responder la pregunta. Sin embargo, parece que has entendido mal la pregunta; por favor léelo cuidadosamente. No tengo ningún problema con la detección del Bloqueo de mayúsculas, estoy buscando una forma de determinar si mostrar la advertencia al usuario o si el navegador lo hace por sí mismo. – duri

1

que sugieren checkout este tutorial http://www.upsdell.com/BrowserNews/res_sniff.htm

puede intentar algo como esto

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

o Javascript versión 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

+5

Me dijeron que IE10 ya no es compatible con los comentarios condicionales. –

+0

Entonces te sugiero que pruebes el javascript para trident/6, como lo que están haciendo aquí http://support.microsoft.com/kb/167820 – Njax3SmmM2x2a0Zf7Hpd

Cuestiones relacionadas