我正在尝试插入引号,然后将光标移动到编辑器的末尾。目前,我插入引号,光标最终在引号内,所以如果你要开始输入,用户会添加报价,这不是我想要发生的事情
我已经尝试通过他们的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很陌生,所以对我来说都是新手
答案 0 :(得分:2)
目前还没有一种简单的方法可以在插入内容之后放置光标,尽管可能应该有。我会创建一个问题来添加一个。
现在您需要使用范围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');
});