完成编辑后如何关闭羽毛笔编辑器

Dha*_*Pal 5 javascript quill

我在 DOM 中的元素的单击事件上动态实例化 QuillJS 编辑器。所以我的要求是,一旦用户完成了对该元素的编辑,他/她应该能够关闭编辑器。目前,我在 quill API 中没有看到任何关闭方法。启用/禁用 API 方法对我不起作用,因为我想完全关闭编辑器并向用户显示他/她在看到 quill 编辑器之前拥有的相同视图,当然还有保存的更改。

这个演示可以在这里看到
https://codepen.io/curiousdj/pen/eEjbPK

const options = { theme: "snow" };
var divs = document.getElementsByTagName("div");
var initializeQuill = function (e){
     if(!this.quill){
        console.log(e);
        this.target = event.currentTarget;
        this.quill = new Quill(this.target, options);
        this.target.children[0].onclick = function(et) { et.preventDefault(); };
        this.target.children[0].onblur = function(l) {
               l.target.parentElement.quill.close;
         };
        }
        this.quill.focus();
        e.stopPropagation();
        e.preventDefault();
}
for(var i = 0; i < divs.length; i++){
    divs[i].onclick = initializeQuill;
}
Run Code Online (Sandbox Code Playgroud)

小智 4

我建议:

  1. 复制 quill 实例的内容,销毁该实例绑定的 DOM 元素,创建一个新的 DOM 元素并将内容粘贴回
  2. 正如您已经尝试过的那样,通过 API 使用禁用,而且还可以设置禁用的 Quill 实例的样式,以不显示 Quill 的格式与您自己的格式之间的任何差异。

在这里更新了你的笔,给出了第二个选项的基本更改示例

.ql-editor {
  padding:0;
  line-height:inherit;
}

.ql-editor p {
  margin-bottom:10px;
}

.ql-toolbar {
  display:none;
}

.ql-container.ql-snow {
  border:none;
  font-family:inherit;
  font-size:inherit;
}
Run Code Online (Sandbox Code Playgroud)