加载编辑器后添加更多按钮?

Add more buttons after editor is loaded?

的答案的基础上,我想知道是否可以向编辑器添加更多按钮 之后是 loaded/constructed.我有一个这样的自定义按钮:

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);

您的问题已作为问题发布在 quill 的官方 github 回购中。 See here。显然,官方不支持动态修改工具栏。那里也提到了一个解决方法,但我不明白它是如何工作的。
我能够创建另一种解决方法,但不是很好。基本上我只是修改选项并重新初始化编辑器。它似乎有效,并且在重新初始化编辑器时保留了输入的文本。
这是代码:https://codepen.io/nik648/pen/VQMxQj。注意:要对其进行测试,请在输入字段中输入 my-thing-2 并单击添加。希望这有帮助。