文章内容
2023/4/11 10:37:42,作 者: 黄兵
quill Invalid Quill container #kt_inbox_reply_editor
最近在使用 Quill 编辑器,在使用的过程中遇到一些问题,对于存在的问题做一个总结,方便大家排错。
quill Invalid Quill container #kt_inbox_reply_editor
出现问题的原因:
这个错误通常出现在 Quill 初始化时无法找到对应的容器。可能的原因是:
- 容器的 ID 不正确,或者容器没有被正确地创建和添加到页面中。
- Quill 初始化代码在容器被创建之前执行了。
可以检查一下以下几点:
- 确认容器的 ID 是否与 Quill 初始化代码中指定的一致。
- 确认容器是否被正确创建并添加到页面中。可以使用浏览器的开发者工具查看 DOM 结构确认。
- 确认 Quill 初始化代码是否在容器被创建后执行。
如果以上步骤都确认无误,还是出现该错误,可以尝试在初始化代码中添加一些延时,等待容器完全加载再进行初始化。例如:
setTimeout(function() {
var quill = new Quill('#kt_inbox_reply_editor', {
// Quill 配置项
});
}, 1000);虽然上面是一种解决方案,但是如果页面上本来就不存在 id 为 kt_inbox_reply_editor 的元素,不论等多久,最终还是会出现错误的。
下面是出现错误的示例代码:
const Delta = Quill.import('delta');
const quill = new Quill('#kt_inbox_reply_editor', {
modules: {
toolbar: [[{header: [1, 2, false]}], ['bold', 'italic', 'underline'], ['code-block']],
},
placeholder: ' 请输入工单回复内容...',
theme: 'snow' // or 'bubble'
});解决方案:
我们首先判断页面是否存在 id 为 kt_inbox_reply_editor 的元素,下面是示例代码:
function loadQuill() {
if (document.getElementById('kt_inbox_reply_editor') !== null) {
// 元素存在
replyTickerQuillRender()
}
}
function replyTickerQuillRender() {
const Delta = Quill.import('delta');
const quill = new Quill('#kt_inbox_reply_editor', {
modules: {
toolbar: [[{header: [1, 2, false]}], ['bold', 'italic', 'underline'], ['code-block']],
},
placeholder: ' 请输入工单回复内容...',
theme: 'snow' // or 'bubble'
});
...上面代码,我们首先使用 document.getElementById() 方法来获取指定 id 的元素,如果该元素不存在,方法会返回 null。因此,使用如下代码来判断页面是否存在 id 为 kt_inbox_reply_editor 的元素:
if (document.getElementById('kt_inbox_reply_editor') !== null) {
// 元素存在
// 在这里添加处理逻辑
} else {
// 元素不存在
// 在这里添加处理逻辑
}这样就避免了以上的错误。
黄兵个人博客原创。
转载请注明出处:黄兵个人博客 - quill Invalid Quill container #kt_inbox_reply_editor
评论列表