我正在使用基于contentEditable
html元素的语法高亮显示创建javascript编辑器。我写了一个管理编辑器的类,其工作原理如下:
function Editor() {
this.setContent = function(content) {
var pos = //Computes cursor position in current dom scope (number of characters from begining)
editor.innerHTML = content;
/* Here I set the cursor back, again, it is complicated and slow process*/
}
this.highlight = function() {
this.setContent(someHighlighter.highlight(this.getTextContent())); //Slow - highlights whole innerText of editor DOM and sets it as innerHTML
}
}
上面的代码只是概念。但即便如此,你可以看到它没有效果,你可能会理解我正在寻找更好的选择 另一方面,我不想在余下的时间里做这个编辑。