CKEditor:设置光标/插入位置

时间:2011-04-21 10:10:18

标签: ckeditor caret

如何在CKEditor3.x中放置插入符号? 我有2个职位,我想在两个职位上使用insertHTML()。

的伪代码:

editor.setCaret(20); // function does not exists
editor.insertHtml('::');
editor.setCaret(40); // function does not exists
editor.insertHtml('::');

我试过(将插入符号设置为位置:20):

var ranges = [];
var range = new CKEDITOR.dom.range( this.document );
range.startOffset = 20;
range.endOffset = 20;
ranges.push( range );
editor.getSelection().selectRanges( ranges );

这不起作用。请有人帮帮我吗?

2 个答案:

答案 0 :(得分:3)

要在编辑器中插入文本或使用html执行某些操作,您无需获得插入位置。

像往常一样对待它。

P.S。如果你可能想在dom操作后恢复光标位置,试试这个

var s = editor.getSelection();
var selected_ranges = s.getRanges(); // save selected range
// do something
s.selectRanges(selected_ranges); // restore it

答案 1 :(得分:1)

如果您使用insertElement而不是insert html(并且插入一个span元素),则以下应该可以使用:

editor.insertElement(element);
var range = new CKEDITOR.dom.range(editor.document);
range.moveToElementEditablePosition(element, true);
editor.getSelection().selectRanges([range]);