¿Hay alguna manera de detectar el diseño del teclado actual mediante JavaScript? Encontré this, pero solo detecta si el visitante está en el diseño en inglés. Necesito saber el diseño exacto como una cadena, p. de-ch
, fr
o en
.detectar el diseño del teclado con javascript
Respuesta
Los diseños de teclado no tienen identificadores estandarizados. Tienen nombres asignados por el creador del diseño. Pueden tener una asociación de lenguaje como una propiedad definida.
Los diseños de teclado no se deben confundir con los identificadores de idioma o configuración regional. En particular, no hay un solo "diseño en inglés", sino docenas de diseños que pueden usarse para inglés.
No creo que los sistemas hagan que su configuración de diseño actual sea legible mediante JavaScript.
Por lo tanto, cualquier problema que intente solucionar detectando el diseño del teclado, se necesita un enfoque diferente.
excelente respuesta, gracias. Voy a buscar una forma alternativa de resolver esto. – Parzifal
Lo que está buscando es cómo detectar su configuración regional. En los encabezados HTTP esto se almacena en el encabezado Accept-Language, pero eso no está disponible para el navegador a través de JS puro.
Hay un plugin de jQuery llamado 'Browser Language' que puede ayudarte a seguir el camino correcto.
Accept-Language, los idiomas del navegador (esto tiene varios meaninigs) y el diseño del teclado son cosas diferentes. A lo sumo * puede adivinar * el idioma del teclado de los demás, ya menudo adivinará mal. –
Gracias por su respuesta! Esto funcionaría para la mayoría de los visitantes, pero algunos tienen un diseño de teclado diferente que aceptar el idioma. Por ejemplo, mi encabezado es 'Accept-Language: de, en; q = 0.7, en-us; q = 0.3' aunque mi teclado está configurado en' de-ch' (los caracteres especiales son diferentes a los normales 'de-de') ¿No hay una forma directa de obtener el diseño? – Parzifal
No hay forma de obtener el diseño, solo puede adivinar en función del idioma. Sí, en el caso en que es Querty vs. Divorak o chino tradicional vs. chino simplificado, probablemente no puedas determinarlo. Pensándolo bien ... me doy cuenta, es posible detectar pero ... sería irregular. Básicamente, tendrías que esperar a que el usuario escriba algo y luego examinar los códigos de las teclas. – synthesizerpatel
Sé que esta pregunta es antigua, pero para aquellos de ustedes que se han visto obstaculizados por el hecho de que algunas teclas se asignan a caracteres diferentes en otras configuraciones regionales, este es un enfoque que puede usar para manejarlo.
Lo más probable es que tenga su manejador de eventos de teclado vinculado a un evento de keyup o keydown; los resultados de la propiedad event.which o event.keyCode en este caso están relacionados con la tecla que el usuario presionó. Por ejemplo, la misma clave que usas para escribir ';' en un diseño EN es la clave utilizada para escribir 'ж' en un diseño RU, y el evento informa 186 como el código para ambos.
Sin embargo, si está más interesado en el personaje que resultó de la pulsación de tecla, debería usar el evento 'presionar tecla'. Este evento se dispara después de la activación/desactivación de la tecla e informa el punto de código unicode real del carácter que se ingresó dentro de event.which o event.charCode, que en el ejemplo anterior es decimal 1078 o U + 0436.
Por lo tanto, si prefieres no adivinar los diseños de teclado y no necesitas diferenciar entre keyup/keydown, la pulsación de tecla puede ser una alternativa viable para ti. No es perfecto (la mayoría de los navegadores no informan eventos de pulsación de tecla en teclas que no imprimen caracteres, como teclas modificadoras, teclas de función y teclas de navegación), pero es mejor que adivinar los códigos clave cuando se trata de caracteres imprimibles.
"y el evento informa 186 como el código para ambos". Creo que esto es falso Prueba este violín http://jsfiddle.net/BWPaz/ e intenta cambiar entre diferentes configuraciones de teclado. Personalmente obtengo códigos diferentes en una configuración regional en inglés de los EE. UU. Como en una configuración regional francesa. –
@JackM Obtengo los mismos códigos de tecla para diferentes símbolos rusos e ingleses que se encuentran en la misma clave. Chrome, Windows 8.1. –
Todo lo que sé sobre este tema y ya implementé una solución para él, es detectar el teclado de diseño no inglés, es decir, los idiomas que utilizan cualquier alfabeto que no sea el utilizado en inglés. La solución depende de la expresión regular para que coincida con cualquier carácter de palabra \w
, cualquier dígito \d
y una gama de caracteres especiales predefinidos del teclado inglés, por lo que ningún otro carácter, como árabe, japonés, etc., no coincidirá, todo esto utiliza el evento de tecla y Estoy usando esta solución para restringir y notificar nombres de usuario y entradas de campos de contraseña en el formulario de inicio de sesión.Me he empaquetado en una función como la siguiente:
function checkKeyboard(ob,e){
re = /\d|\w|[\.\[email protected]\*\\\/\+\-\^\!\(\)\[\]\~\%\&\=\?\>\<\{\}\"\'\,\:\;\_]/g;
a = e.key.match(re);
if (a == null){
alert('{{__('Error 2:\nNon English keyboard layout is detected!\nSet the keyboard layout to English and try to fill out the field again.')}}');
ob.val('');
return false;
}
return true;
}
A continuación, llamar a la función desde el evento de la siguiente manera:
$("#textFieldId").keydown(function(e){
if (!checkKeyboard($(this),e)){
return false;
}
});
- 1. cambiar el diseño del teclado con javascript
- 2. Android: Detectar inactividad del usuario/Detectar (teclado) entrada de teclado
- 3. detectar el botón de búsqueda del teclado
- 4. Emacs que determina el diseño del teclado
- 5. Detectar el carácter ingresado con JavaScript
- 6. Localización del diseño del teclado en pantalla
- 7. Hacer que Emacs ignore el diseño del teclado del sistema
- 8. Ocultar el teclado del iPhone usando Javascript
- 9. Averigüe cuándo se cambió el diseño del teclado
- 10. Detectar el idioma IME del teclado en Android
- 11. ¿Preservar el diseño del teclado en la aplicación swing?
- 12. Detectar HTTPS con JavaScript
- 13. Android: cargando JavaScript con WebView.loadUrl pero manteniendo el teclado suave
- 14. Detectar evento de vuelta en el teclado de Android
- 15. ¿Cómo detectar la conexión del teclado externo en Object-C?
- 16. Detectar ventana del navegador Maximizado/Minimizado con Javascript
- 17. Detectar la dirección de selección del usuario con javascript
- 18. Cómo detectar iPhone/Android despierta del sueño con javascript
- 19. ¿Puedes mostrar/ocultar el teclado del iPad Safari usando JavaScript?
- 20. deshabilita el cambio automático del diseño del teclado en DbGrids.pas en VCL
- 21. ¿Puede detectar JavaScript si el navegador del usuario admite gzip?
- 22. Asesoramiento para emacs con diseño de teclado Dvorak
- 23. Idioma de diseño de teclado de Android
- 24. ¿Cómo detectar la presencia de hardware en el teclado?
- 25. Cambiar diseño de teclado para otro proceso
- 26. ¿Utiliza el diseño de teclado/teclado de manzana original (alemán) cuando programa en mac?
- 27. crear diseño de teclado android personalizado
- 28. Cómo detectar el usuario de iPad, toque el botón ocultar del teclado?
- 29. Cómo detectar el toque del usuario con phonegap usando JS
- 30. Teclado personalizado del iPad GUI
¿Ha encontrado una respuesta? – yanivsh