入力ボックスまたはcontenteditable = true divでは、文字 "b"のキーレスブを返すために、文字 "a"のキー入力を変更するにはどうすればよいですか?つまり、divに文字「a」を入力するたびに、出力は実際には文字「b」になります。keypressを変更する
私はIEで動作するソリューションではなく、Safari、Chrome、& FFで動作するソリューションには関心がありません。
Chromeでは、キー入力イベントに「charCode」、「keyCode」、および「which」というプロパティがあり、キー入力イベント番号が割り当てられていることがわかりました。 keypressでイベントを発生させると、これらの値を変更できますが、実際に入力されたキーが異なるように何を返すのか分かりません。たとえば:
$(window).keypress(function(e){ //$(window) is a jQuery object
e.charCode = 102;
e.which = 102;
e.keyCode = 102;
console.log(e);
return e;
});
私はまた、charCodeは、とキーコードと一緒に、また今度にもこれらの性質を持っている「originalEvent」プロパティがあることがわかります。しかし、私はそれらを修正することができませんでした(私はe.originalEvent.charCode = 102のようなものを試しました)。
ありがとうTim。あなたが与えた最初のリンクに書き込んだ関数insertTextAtCursor()がそのトリックです! – maxedison
非常にありがとうTim、私は1日完全なケースを調査するために "どのように英語にキーワードを変更するには?あなたの答えが見つかるまで、私は最適化&小&分かりやすいとは思えませんでした。 –
私は "非IE jsFiddleの例"を実装し、誰もが助けるためにスタックとgitbubで共有します。 は他のすべての言語をサポートしています。もう一度ありがとうございます。 –