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

时间:2015-01-15 12:33:22

标签: ckeditor

我使用内联CKEditor编辑页面上的元素。因此,当我使用某个类单击DIV时,CKEditor会附加到它,当它失去焦点时,编辑器实例将被销毁。我需要在销毁CKEditor实例后将HTML元素插入到DIV中 - 在销毁编辑器实例之前到光标的最后位置。所以我基本上需要知道被编辑元素的HTML中的游标索引,因为它将被视为纯文本(对于下面的这个例子,它将是25)。我不想修改原始数据。

我的DIV中有这样的HTML:
"some <span>text</span> wi|th <b>html</b> tags"(其中&#34; |&#34;是光标位置)

我试图获得范围并将其扩展到可编辑元素的开头:

var range = editor.getSelection().getRanges()[ 0 ];    
range.collapse( true );
range.setStartAt( editor.editable(), CKEDITOR.POSITION_AFTER_START );

这里range.endOffset是3(就像我没有扩展范围一样)。但即使我总结了更多元素的偏移量,它也无法解决我的问题,因为它排除了HTML标记。

1 个答案:

答案 0 :(得分:0)

如果你想在销毁编辑器后使用它们,你将无法使用范围,因为在销毁时编辑器用数据替换可编辑的内部HTML并且它们不是同一个东西

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

有关如何实现这一目标的建议,请参阅此主题:Retain cursor position after reloading the page in CKEditor