我使用内联CKEditor来编辑页面上的元素.因此,当我使用某个类单击DIV时,CKEditor会附加到它,当它失去焦点时,编辑器实例将被销毁.我需要在销毁CKEditor实例后将HTML元素插入到DIV中 - 在销毁编辑器实例之前到光标的最后位置.所以我基本上需要知道被编辑元素的HTML中的游标索引,因为它将被视为纯文本(对于下面的示例,它将是25).我不想修改原始数据.
我的DIV中有这样的HTML :(
"some <span>text</span> wi|th <b>html</b> tags"其中"|"是光标位置)
我试图获得范围并将其扩展到可编辑元素的开头:
var range = editor.getSelection().getRanges()[ 0 ];
range.collapse( true );
range.setStartAt( editor.editable(), CKEDITOR.POSITION_AFTER_START );
Run Code Online (Sandbox Code Playgroud)
这range.endOffset是3(就像我没有扩展范围一样).但即使我总结了更多元素的偏移量,它也无法解决我的问题,因为它排除了HTML标记.
如果您想在编辑器被销毁后使用范围,您将无法使用范围,因为在被销毁时,编辑器会用数据替换可编辑的内部 HTML,并且它们不是同一件事。
相反,您应该在编辑器被销毁之前为选择创建一个标记,并在数据中找到该标记。
请参阅本主题了解如何实现这一目标:在 CKEditor 中重新加载页面后保留光标位置。
| 归档时间: |
|
| 查看次数: |
3903 次 |
| 最近记录: |