Добавить больше кнопок после загрузки редактора?
Основываясь немного на ответе на этот вопрос, я хотел бы знать, возможно ли добавить дополнительные кнопки в редактор после его загрузки / создания. У меня есть одна пользовательская кнопка, как это:
var Block = Quill.import('blots/block');
class MyThing extends Block {}
MyThing.blotName = 'my-thing';
MyThing.className = 'my-thing';
MyThing.tagName = 'div';
Quill.register(MyThing);
var quill = new Quill('#editor', {
theme: 'snow',
modules: {
toolbar: [
['my-thing']
]
}
});
Пользователь должен иметь возможность добавлять свои кнопки в этот редактор. Где-то есть отдельное текстовое поле, где они могут записать название кнопки и затем добавить ее в качестве новой кнопки в редактор после отправки.
Это возможно? Я хочу быть в состоянии сделать что-то подобное (не работает, очевидно):
var newButton = $('#newButtonName').val();
var Block = Quill.import('blots/block');
class NewButton extends Block {}
NewButton.blotName = newButton;
NewButton.className = newButton;
NewButton.tagName = 'div';
Quill.register(NewButton);
quill.modules.toolbar.push(newButton);
1 ответ
Ваша проблема опубликована как проблема в официальном репозитории Github Quill. Смотрите здесь. Очевидно, что динамическое изменение панели инструментов официально не поддерживается. Обходное решение для этого также упомянуто там, но я не мог понять, как это работало.
Я смог создать другой обходной путь, хотя и не очень хороший. В основном я просто изменяю параметры и заново инициализирую редактор. Кажется, что работает, и введенный текст сохраняется при повторной инициализации редактора.
Вот код: https://codepen.io/nik648/pen/VQMxQj. Примечание. Для проверки введите my-thing-2
в поле ввода и нажмите кнопку Добавить. Надеюсь это поможет.