8 javascript innerhtml selection contenteditable
我知道在contentEditable中获取/设置光标位置几乎是不可能的.我不在乎了解这些信息.我需要能够保存当前选择,修改div的innerHTML,然后恢复选择.
我正在试验在满意的选定文本保存和恢复中提供的答案.它在输入div之后有效,但在编程修改div的innerHTML 之后却没有.相反,当我调用restoreSelection时,插入符号只是开始.
关于如何在修改innerHTML而不是键入之后如何在contentEditable上保存/恢复选择的任何建议将非常感激.
如果您要对现有的可编辑元素进行某种字符串替换innerHTML,您可以使用我的Rangy库及其保存/恢复选择模块。它使用具有特定 ID 的不可见元素来标记选择的开始和结束边界,因此如果您的innerHTML更改不包含这些元素,那么这将不起作用。
另一种替代方法是纯粹基于元素文本节点内的字符索引来执行此操作。我在这里编写了一个简单的实现:https ://stackoverflow.com/q/5596688/96100