在编辑元素的HTML中获取CKEditor 4中的光标位置

jui*_*ice 6 ckeditor

我使用内联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标记.

Rei*_*mar 1

如果您想在编辑器被销毁后使用范围,您将无法使用范围,因为在被销毁时,编辑器会用数据替换可编辑的内部 HTML,并且它们不是同一件事。

相反,您应该在编辑器被销毁之前为选择创建一个标记,并在数据中找到该标记。

请参阅本主题了解如何实现这一目标:在 CKEditor 中重新加载页面后保留光标位置