En un cuadro de entrada o contenteditable = true div, ¿cómo puedo modificar una pulsación de tecla para que la letra "a" devuelva una tecla para la letra "b"? Es decir, cada vez que escribe la letra "a" en el div, la salida es realmente la letra "b".Cambio de la pulsación de tecla
No me preocupa tanto una solución que funcione en IE, solo una que funcione en Safari, Chrome, & FF.
En Chrome, puedo ver que un evento de pulsación de tecla tiene las propiedades "charCode", "keyCode" y "which", a todos los cuales se les asigna el número de evento de pulsación de tecla. Si desactivo un evento con una pulsación de tecla, puedo modificar estos valores, pero no puedo determinar qué devolver para que la clave real que se escribe sea diferente. Por ejemplo:
$(window).keypress(function(e){ //$(window) is a jQuery object
e.charCode = 102;
e.which = 102;
e.keyCode = 102;
console.log(e);
return e;
});
también puedo ver que junto con charCode, la cual, y keyCode, también hay una propiedad "originalEvent" que a su vez también tiene estas propiedades. Sin embargo, no he podido modificarlos (probé con cosas como e.originalEvent.charCode = 102).
Gracias Tim. La función insertTextAtCursor() que escribió en el primer enlace que dio hace el truco! – maxedison
Muchas gracias Tim, completo un día al caso de investigación "¿cómo cambiar la palabra clave al inglés?" pero no encontré optimize & small & Intelligible, hasta que encontré tu respuesta. –
Implementaré el "Ejemplo jsFiddle no IE" y lo compartiré en stack y gitbub para ayudar a todos. implementar que admite todos los demás idiomas. gracias de nuevo. –