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

时间:2017-04-13 02:31:39

标签: javascript quill

这里我通过Quill.import('blots/block/embed')自定义一个块元素,我将其插入到编辑器内容中。我想知道如果有任何方法可以让它无法取消,那么用户就无法删除编辑?非常感谢。

1 个答案:

答案 0 :(得分:1)

我有一个类似的问题,我想出的解决方案是拦截退格键盘绑定。在这里的示例中,我有一个自定义视频'印迹。因此,如果输入退格并且光标在视频上或在视频之后,它什么也不做。以下是键盘模块的文档供参考: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'
});

另外,要记住另一件事,编辑器已经满足了=" true",您的自定义印迹将继承。所以你可能想要设置contenteditable =" false"在自定义印迹中的节点上。