3

如何在 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 );

这是行不通的。有人可以帮我吗?

4

2 回答 2

3

要在编辑器中插入文本或使用 html 执行某些操作,您不需要获取插入符号的位置。

像往常一样对待它的html。

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

var s = editor.getSelection();
var selected_ranges = s.getRanges(); // save selected range
// do something
s.selectRanges(selected_ranges); // restore it
于 2011-05-11T14:31:27.190 回答
1

如果您使用 insertElement 而不是 insert html(例如,插入一个 span 元素),则以下内容可能会起作用:

editor.insertElement(element);
var range = new CKEDITOR.dom.range(editor.document);
range.moveToElementEditablePosition(element, true);
editor.getSelection().selectRanges([range]);
于 2012-07-02T15:39:10.860 回答