javascript高手请帮忙,一个光标位置问题

来源:百度知道 编辑:UC知道 时间:2024/05/28 23:57:11
<textarea id="allHTMLcode" class="allHTMLcode">
</textarea>
最近在开发一款基于HTML的网页代码开发工具,其中要用到这个功能(Frontpage2003代码模式中使用这组快捷键也是这个功能,现在就是要实现这个功能),就是如何设置一个使用[ctrl+,]这组快捷键可以在textarea中插入<>,并且插入<>后,光标要定位在<>之间;并且这个插入点要是即点插入,就是光标定位在哪,就在哪插入一个<>,然后光标定位到这个<>的中间。
如果这个问题解决,那么使用[ctrl+.]这组快捷键实现即点插入</>,并退回一个位置就轻而易举了.高手帮忙.

function insertAtCursor(field, prefix, suffix) {
if (document.selection) {
rng = document.selection.createRange();
var txt = rng.text;
rng.text = prefix+txt+suffix;
rng.moveStart(\'character\', -txt.length-suffix.length);
rng.moveEnd(\'character\', -suffix.length);
rng.select();
}
}

这个是在光标处插入字符串的函数,例如你有个TextArea名叫myText,要在光标处插入\"<>\",就这样写:
insertAtCursor(myText, \"<\", \">\");

剩下就是对键盘的捕获了...你可以在TextArea里写onkeypress, onkeydown事件来实现, 先试试看吧^_^