修改innerHTML后保存/恢复contentitable上的选择
Save / restore selection on contentEditable AFTER modifying innerHTML
我知道在contentEditable中获取/设置光标位置几乎是不可能的。我不在乎知道这些信息。我需要能够保存当前选择,修改div的innerHTML,然后恢复选择。
我一直在试验在可满足的选定文本保存和恢复中提供的答案。它在输入div后起作用,但在编程修改div的innerHTML之后不起作用。相反,当我调用restorereselection时,插入符号只是转到开头。
关于如何能够在修改innerHTML而不是键入后保存/恢复contentteditable上的选择的任何建议将不胜感激。
如果您正在对可编辑元素的现有innerHTML
进行某种字符串替换,则可以使用我的Rangy库及其保存/恢复选择模块。它使用具有特定id的不可见元素来标记选择的开始和结束边界,所以如果您的innerHTML
更改不包括这些元素,那么这将不起作用。
另一种选择是完全基于元素文本节点内的字符索引。我在这里写了一个简单的实现:https://stackoverflow.com/q/5596688/96100
相关文章:
- 下拉选择可自动更改第二个下拉选择
- 如何使用jQuery选择下拉列表的值
- jquery点击函数select&取消选择
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- 按照选项卡索引的顺序循环一个jQuery选择
- 在动态创建的元素上获取对特定选择器的引用
- AngularJS-在JSON选择器中使用变量名
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 获取选择框的状态
- d3基于用户选择动态更新节点
- 提交后保留下拉选择的值
- JQuery对动态创建的对象进行选择
- 无法在Ionic select中预先选择最后一个选项
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- jQuery自动完成阻止选择后聚焦
- 使用此选项选择父类内部的类
- jQuery最近父级的数据属性选择器
- 遍历类元素数组,并在jquery中选择同级元素
- 修改innerHTML后保存/恢复contentitable上的选择
- 防止选择在Firefox的iframe中显示为灰色而不使用contentitable