-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.
    }
});

Connor 的演示小提琴 →

http://jsfiddle.net/ybPzP/10/

于 2013-08-01T12:03:17.507 回答
0

我使用 String.fromCharCode(0x2190) 比较 javascript 中的左箭头字符。如果您对此发出警报,那么您可以看到向左箭头字符发出警报。

于 2013-10-06T10:36:19.073 回答