我有一个简单的contenteditable div,其中包含一些文本。 Onkeyup事件我想要基于正则表达式替换div的整个内容(innerHTML)。更改innerHTML后更改contenteditable div中的光标位置
例如,
HTML:
some text, more text and $even more text
功能中,我打算让与$所有文本($即使在上面的例子),并在span标签包装它:
div.onkeypress = function() {
div.innerHTML.replace(/(some_regexp)/, "<span class='class'>$1</span>");
};
问题出在这样的替换光标跳转到div的开始处。我希望它保持原来的位置。
我想我必须在更改之前保存光标的坐标,然后以某种方式使用它们将光标设置回,但我该怎么做? :)
我试过保存范围对象,但编辑后,我相信它指向无处。
谢谢!
什么是替代HTML是什么样子? – 2010-09-24 16:59:21
我已更新原始问题。如果你知道如何通过其他方式获得预期的行为而不改变整个innerHTML--听起来很棒。 – 2010-09-26 08:37:04
我知道这是一个老问题,但是您是否设法找到了解决方案?我有完全相同的需求 – 2017-05-11 15:21:28