与伟大的Quill http://quilljs.com/Javascript 的富文本编辑器 我试图让两个或更多编辑器共享同一个工具栏。
我想(从文档 http://quilljs.com/docs/api/)目前这是不可能的,所以我试图通过 API 在已单击的编辑器上添加工具栏模块来“模拟”这一点:
// this uses jQuery
$editorTag.click(function(e){
var tag = e.target;
var editor = getEditorByTag(tag);
if( editor )
editor.addModule('toolbar',{container:'#toolbar'});
});
它似乎有效,但我怀疑 Quill 不喜欢在同一个对象上一遍又一遍地添加相同的模块,因为最终它会吐出:
(节点)警告:检测到可能的 EventEmitter 内存泄漏。 11
听众补充道。使用emitter.setMaxListeners()来增加限制。
quill.js(第 4727 行)
那么有没有办法删除之前添加的模块呢?就像是:
// installs editor
var editor = new Quill('#editor');
// adds toolbar module
editor.addModule('toolbar',{container:'#toolbar'});
// removes just added toolbar module
editor.removeModule('toolbar');
前几天我遇到了同样的问题,并找到了适合我们用例的解决方案。这基本上就是我所做的:
我正在创建 Quill 的一个实例,使用定位的自定义工具栏
在顶部。编辑器元素被放置在一个临时的、隐藏的、
容器。当用户双击三个文本中的任何一个时
容器(Editables),将编辑器元素移植到表单
将临时容器移动到可编辑内的新位置。如果一个
用户按下退出键,可编辑将被停用,移动
编辑器元素返回到临时容器。
您可以在这里测试:https://codesandbox.io/s/hungry-pine-o8oh9?file=/src/App.js https://codesandbox.io/s/hungry-pine-o8oh9?file=/src/App.js
GitHub 仓库:https://github.com/maxfahl/Quill-Edit-Multiple https://github.com/maxfahl/Quill-Edit-Multiple
您可以随意使用该代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)