Quilljs Editor中,如何插入不可删除的块级元素?

In Quilljs Editor, How to insert an undeletable block-level element?

在这里,我通过 Quill.import('blots/block/embed') 自定义了一个块元素,并将其插入到编辑器内容中。我想知道是否有任何方法可以使其不可删除,因此用户无法删除它编辑它?非常感谢。

我有一个类似的问题,我想出的解决方案是拦截键盘退格键绑定。在此处的示例中,我有一个自定义的 'video' 印迹。因此,如果输入退格键并且光标位于视频上或视频之后,它什么都不做。以下是键盘模块的文档供参考:https://quilljs.com/docs/modules/keyboard/

let _this = this;    
this.quill = new Quill(this.contentElement, {
  modules: {
    keyboard: {
      bindings: {
        video: {
          key: 'backspace',
          handler: function(range, keycontext) {
            let format = _this.quill.getFormat(range.index - 1);
            if (!format.video && !keycontext.format.video) {
              // propogate to Quill's default
              return true;
            } // else do nothing to prevent deleting video
          }
        }
      }
    }
  },
  theme: 'snow'
});

另外,要记住另一件事,编辑器有 contenteditable="true",您的自定义印迹将继承它。因此,您可能希望在自定义印迹的节点上设置 contenteditable="false"。