gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 21:07:02 25 4
gpt4 key购买 nike

我正在尝试插入引号,然后将光标移动到编辑器的末尾。目前,我插入引号,光标在引号内结束,所以如果您开始输入,用户将添加到引号中,这不是我希望发生的事情

我试过查看他们的 documentation弄清楚如何做到这一点,但我不认为我引用理解它

这是我当前的代码:

    $(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 的新手,所以它对我来说都是新的

最佳答案

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

现在您需要使用范围 API 手动移动光标。这样的事情应该有效:

$(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');
});

实例:https://jsfiddle.net/3z8cg8z1/

关于javascript - 使用 SCEditor 将光标设置到文本末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43516795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com