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"。
在这里,我通过 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"。