In einem Eingabefeld oder contenteditable = true div, wie kann ich einen Tastendruck für den Buchstaben "a" ändern, um eine keybress für den Buchstaben "b" zurückzugeben? Das heißt, jedes Mal, wenn Sie im Div den Buchstaben "a" eingeben, ist die Ausgabe tatsächlich der Buchstabe "b".Ändern der Tastendruck
Ich bin nicht so besorgt über eine Lösung, die in IE funktioniert - nur eine, die in Safari funktioniert, Chrome, & FF.
In Chrome kann ich sehen, dass ein Tastendruckereignis die Eigenschaften "charCode", "keyCode" und "which" hat, die alle die Tastenfolge-Ereignisnummer zugewiesen bekommen. Wenn ich ein Ereignis auf einen Tastendruck feuern, kann ich diese Werte ändern, aber ich kann nicht herausfinden, was zurückgegeben wird, so dass der tatsächliche Schlüssel, der getippt wird, unterschiedlich ist. Zum Beispiel:
$(window).keypress(function(e){ //$(window) is a jQuery object
e.charCode = 102;
e.which = 102;
e.keyCode = 102;
console.log(e);
return e;
});
kann ich auch sehen, dass zusammen mit charCode, die, und keyCode, gibt es auch eine „originalEvent“ Eigenschaft, die wiederum auch diese Eigenschaften hat. Ich war jedoch nicht in der Lage, diese zu ändern (ich versuchte es mit e.originalEvent.charCode = 102).
Danke Tim. Die Funktion insertTextAtCursor(), die Sie in den ersten Link geschrieben haben, macht den Trick! – maxedison
Vielen Dank Tim, ich vervollständige einen Tag, um den Fall zu untersuchen "Wie ändere ich das Stichwort in die englische Sprache?" aber ich fand nicht optimieren & small & Intelligible, bis deine Antwort gefunden wurde. –
Ich werde "Nicht-IE-jsFiddle-Beispiel" implementieren und in Stack und Gitbub geteilt, um jedem zu helfen. implementieren, dass alle anderen Sprachen unterstützt. danke nochmal. –