我使用内联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标记。
答案 0 :(得分:0)
如果你想在销毁编辑器后使用它们,你将无法使用范围,因为在销毁时编辑器用数据替换可编辑的内部HTML并且它们不是同一个东西
相反,您应该在销毁编辑器之前为选择创建标记,并在数据中找到此标记。
有关如何实现这一目标的建议,请参阅此主题:Retain cursor position after reloading the page in CKEditor。