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

时间:2018-02-07 14:09:04

标签: quill

根据this question的答案,我想知道是否可以在加载/构建之后向编辑器添加更多按钮。我有一个这样的自定义按钮:

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 个答案:

答案 0 :(得分:1)

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