Saltar al contenido

detectar distribución de teclado con javascript

Bienvenido a nuestro sitio web, en este sitio vas a hallar la resolución a lo que andabas buscando.

Solución:

Sé que esta pregunta es vieja, pero para aquellos de ustedes que se han visto frustrados por el hecho de que algunos keys mapear a diferentes personajes en otros lugares, aquí hay un enfoque que puede usar para manejarlo.

Lo más probable es que tenga el controlador de eventos del teclado vinculado a un evento keyup o keydown; los resultados de la propiedad event.which o event.keyCode en este caso están vinculados a which key presionó el usuario. Por ejemplo, lo mismo key usas para escribir ‘;’ en un diseño EN es el key se usa para escribir ‘ж’ en un diseño RU, y el evento informa 186 como el código para ambos.

Sin embargo, si estás más interesado en el personaje que resultó de la key presione, debe usar el evento ‘presionar tecla’ en su lugar. Este evento se activa después de keydown/up e informa el punto de código Unicode real del carácter que se escribió dentro de event.which o event.charCode, que en el ejemplo anterior es decimal 1078 o U+0436.

Por lo tanto, si prefiere no adivinar los diseños de teclado y no necesita diferenciar entre tecla arriba/tecla abajo, la pulsación de tecla puede ser una alternativa viable para usted. No es perfecto (la mayoría de los navegadores no informan constantemente sobre los eventos de pulsación de teclas). keys que no imprimen caracteres, como modificador keysfunción keys y navegación keys), pero es mejor que adivinar códigos clave cuando se trata de caracteres imprimibles.

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 deben confundirse con el idioma o los identificadores de configuración regional. En particular, no existe un único “diseño en inglés”, sino docenas de diseños que se pueden usar para el inglés.

No creo que los sistemas normalmente hagan que su configuración de diseño actual sea legible a través de JavaScript.

Entonces, sea cual sea el problema que intente resolver al detectar la distribución del teclado, se necesita un enfoque diferente.

Todo lo que sé sobre este tema y ya implementé una solución para él, es detectar teclado de diseño no inglés, es decir, idiomas que usan cualquier alfabeto que no sea el que se usa en inglés. La solución depende de la expresión regular para que coincida con cualquier carácter de palabra wcualquier carácter de dígito d y un rango de caracteres especiales de teclado en inglés predefinidos, por lo que cualquier otro carácter, como árabe, japonés, etc., no coincidirá, todo esto usa evento keydown y Estoy usando esta solución para restringir y notificar nombres de usuario y contraseñas entrada de campos en el formulario de inicio de sesión. Lo empaqueté en una función como la siguiente:

function checkKeyboard(ob,e)
        re = /d 

Luego llame a la función desde el evento de la siguiente manera:

$("#textFieldId").keydown(function(e)
        if (!checkKeyboard($(this),e))
            return false;
        
    );

Esto es DEMO de trabajo para los votantes desconocidos!

Aviso:

En el patrón de expresiones regulares, re puede agregar cualquier carácter especial que falte, como #,`,|, etc.

Si piensas que ha resultado provechoso nuestro artículo, sería de mucha ayuda si lo compartes con otros desarrolladores así nos ayudas a extender nuestra información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *