如何在CKEditor中将光标位置设置为文本结尾?

Bro*_*Dev 18 fckeditor ckeditor

有没有办法将光标设置在CKEditor内容的末尾?

这位开发人员也问过,但没有得到答案:

http://cksource.com/forums/viewtopic.php?f=11&t=19877&hilit=cursor+end

我想将焦点设置在CKEditor内的文本末尾.我用的时候:

ckEditor.focus();
Run Code Online (Sandbox Code Playgroud)

它将我带到CKEditor内部的文本的开头.

小智 21

Dan的回答对我来说有些奇怪的结果,但是微小的改变(除了错字修复)使它工作:

var range = me.editor.createRange();
range.moveToElementEditEnd( range.root );
me.editor.getSelection().selectRanges( [ range ] );
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,这里也一样。Dan 的解决方案确实为我插入了插入符号,但在编辑器的最右边与预期的结束点一致。你的已经解决了,谢谢。 (2认同)

Dan*_*Dan 9

根据CKEditor 4的文档,一旦有了编辑器对象,就可以执行以下操作.

var range = editor.createRange();
range.moveToPosition( range.root, CKEDITOR.POSITION_BEFORE_END );
editor.getSelection().selectRanges( [ range ] );
Run Code Online (Sandbox Code Playgroud)

链接:http://docs.ckeditor.com/#!/ api/CKEDITOR.dom.selection(在selectRanges函数下).


Kee*_*ker 5

经过一番摆弄之后,我可以使用以下代码来处理它:

$(document).ready(function() {

    CKEDITOR.on('instanceReady', function(ev) {

        ev.editor.focus();

        var s = ev.editor.getSelection(); // getting selection
        var selected_ranges = s.getRanges(); // getting ranges
        var node = selected_ranges[0].startContainer; // selecting the starting node
        var parents = node.getParents(true);

        node = parents[parents.length - 2].getFirst();

        while (true) {
            var x = node.getNext();
            if (x == null) {
                break;
            }
            node = x;
        }

        s.selectElement(node);
        selected_ranges = s.getRanges();
        selected_ranges[0].collapse(false);  //  false collapses the range to the end of the selected node, true before the node.
        s.selectRanges(selected_ranges);  // putting the current selection there
    }

});
Run Code Online (Sandbox Code Playgroud)

这个想法是:

  1. 获取根节点(不是主体)
  2. 前进到下一个节点,直到没有更多的节点可以前进。
  3. 选择最后一个节点。
  4. 收起它
  5. 设定范围


Ady*_*dyt 0

您是否尝试过 ckEditor.Selection.Collapse(false);

  • 我不明白你所说的到底是什么。准确的语法是什么?我在 ckeditor 对象上没有看到选择字段。 (3认同)