-1

私の編集エリア:

<div id="myeditor" contenteditable="true"><div>

を使用してキーコードを送信および表示できます

$("#myeditor").text($("#myeditor").text() + String.fromCharCode(65))

ID「myeditor」のdivに「A」が表示されます。しかし、矢印カーソルキーコードを送信するのに行き詰まっています。(左: 37; 上: 38; 右: 39; 下: 40)

$("#myeditor").text($("#myeditor").text() + String.fromCharCode(39))

ああ、うまくいきません..意図されていない他のASCII文字(アンパサンドや引用符など)が表示されています。正しいやり方を教えてください。

4

2 に答える 2

1

その理由は、他のすべての文字が、何らかの文字が関連付けられているキーからのものであるためだと思います。しかし、矢印キーには ←、→ などの文字が関連付けられていません。それらはいくつかの機能を持っているだけです。矢印キーを使用してテキスト ボックスに矢印を入力したことがありますか?

それらを使用して矢印を入力したい場合は、jQuery で次の操作を行うことができます。

var element = $('#myeditor'),
    elementText = element.text();
    store = {
        37: "&larr;",
        38: "&uarr;",
        39: "&rarr;",
        40: "&darr;"
    };

element.keydown(function( event ) {
    var selection = window.getSelection().getRangeAt(0);
         //getSelection gets the selected range of text, when nothing is selected,selection is empty.getRangeAt(0)makes selection from the start of selection.
    var keyCode = event.which;
    if( store[ keyCode ]) {
        var n = document.createElement('span');
            //Adds a new html element.
        n.innerHTML = store[keyCode];
            //Adds the arrow to the newly created html element.
        selection.insertNode( n );
            //insert the newly created html element.
    }
});

コナーによるデモフィドル→

またはhttp://jsfiddle.net/ybPzP/10/

于 2013-08-01T12:03:17.507 に答える
0

String.fromCharCode(0x2190) を使用して、JavaScript の左矢印文字を比較しました。これを警告すると、左矢印の文字が警告されていることがわかります。

于 2013-10-06T10:36:19.073 に答える