Javascript 使用SCEditor将光标设置到文本末尾

Javascript 使用SCEditor将光标设置到文本末尾,javascript,jquery,sceditor,Javascript,Jquery,Sceditor,我试图插入一个引号,然后将光标移动到编辑器的末尾。目前,我插入了引号,光标在引号内结束,因此如果您开始键入,用户将添加到引号中,这不是我希望发生的事情 我试着翻阅他们的文章,想知道如何做到这一点,但我想我不明白 这是我目前的代码: $(document.body).on('click', '.action.quote', function() { var $target = $($(this).data('target')); var editor =

我试图插入一个引号,然后将光标移动到编辑器的末尾。目前,我插入了引号,光标在引号内结束,因此如果您开始键入,用户将添加到引号中,这不是我希望发生的事情

我试着翻阅他们的文章,想知道如何做到这一点,但我想我不明白

这是我目前的代码:

    $(document.body).on('click', '.action.quote', function() {

        var $target = $($(this).data('target'));
        var editor = $('#reply-body').sceditor('instance');
        var bodyText = $target.html();

        editor.insert('[quote=author]' + bodyText + '[/quote]');
        editor.focus();

        smoothScroll('#new-comment');
    });

有没有快速的方法可以做到这一点?我对SCEditor很陌生,所以这对我来说是全新的

目前没有一种简单的方法可以将光标放在插入内容之后,尽管可能应该这样做。我将创建一个问题以添加一个问题

现在,您需要使用rangeapi手动移动光标。像这样的方法应该会奏效:

$(document.body).on('click', '.action.quote', function() {
    var $target = $($(this).data('target'));
    var editor = $('#reply-body').sceditor('instance');
    var bodyText = 'Dummy text for example';

    editor.insert('[quote=author]' + bodyText + '[/quote]');
    editor.focus();

    var rangeHelper = editor.getRangeHelper();
    var range = rangeHelper.cloneSelected();

    // Handle DOM ranges, if you casre about IE < 9
    // you'll need to handle TextRanges too
    if ('selectNodeContents' in range) {
        var bodyChildren = editor.getBody()[0].children;

        // Select the last child of the body
        range.selectNodeContents(bodyChildren[bodyChildren.length - 1]);

        // Move cursor to after it
        range.collapse(false);
        rangeHelper.selectRange(range);
    }

    smoothScroll('#new-comment');
});
$(document.body).on('click','action.quote',function()){
var$target=$($(this.data('target'));
变量编辑器=$(“#回复正文”).sceditor('instance');
var bodyText='例如,伪文本';
插入('[quote=author]'+bodyText+'[/quote]');
editor.focus();
var rangeHelper=editor.getRangeHelper();
var range=rangeHelper.cloneSelected();
//处理DOM范围,如果你认为IE<9
//你也需要处理文本范围
如果('selectNodeContents'在范围内){
var bodyChildren=editor.getBody()[0].children;
//选择主体的最后一个子对象
range.selectNodeContents(bodyChildren[bodyChildren.length-1]);
//将光标移到其后面
范围。塌陷(假);
rangeHelper。选择range(范围);
}
平滑滚动(“#新注释”);
});

活生生的例子:

那么这有帮助吗?+我不确定这就是我要找的。我可以插入引号,但光标的位置不是在[/quote]之后,而是在该标记之前,因此当您输入时,它会添加到引号而不是afterPerfect。非常感谢!