Вставка текста в положение курсора с помощью Quill.js

Я пытаюсь добавить пользовательский кусок функциональности ( "модуль" ) к quill.js и не могу это сделать. Вот что мне нужно:

Если вы хотите добавить кнопку, которая вставляет переменную замены шаблона... скажем что-то вроде {{company}} в месте расположения курсора в редактор, это то, что в настоящее время возможно с API - я думал, что могу сделать он использует insertText, но я не могу заставить его работать.

Спасибо

Ответ 1

Вы должны иметь возможность сделать это с помощью insertText, но вам может понадобиться использовать getSelection, чтобы получить местоположение курсора. Объект, возвращенный getSelection, будет иметь ключ индекса и длины. Добавление кнопки и необходимого обработчика клика зависит от разработчика. Обратите внимание, что фокус должен быть возвращен обратно редактору перед вызовом getSelection с помощью focus или просто передать true в getSelection.

Ответ 2

То, что я закончил в очень похожей обстановке:

let mergeFieldText = '{{company}}';
var selection = this._quill.getSelection(true);
this._quill.insertText(selection.index, mergeFieldText);

Ответ 3

Этот фрагмент кода предназначен для добавления символа в позицию курсора с помощью пользовательской кнопки с Quill.js.

Сначала объявите переменную quill:

var quill = new Quill('.editor', {
    theme: 'snow'
});

При событии нажатия кнопки добавьте символ в позицию каретки.

$('.symbols').click(function(){
    quill.focus();
    var symbol = $(this).html();
    var caretPosition = quill.getSelection(true);
    quill.insertText(caretPosition, symbol);
});