如何使用JavaScript/jQuery动态创建ckedor5中的html片段?



我正在转换一个自定义的应用程序,目前正在使用Redactor和jQuery到CkEditor, v5。它通常工作,但我们有一个功能,生成一些HTML,然后插入到编辑器。对于旧的编辑器,这工作得很好,但对于CkEditor,我认为我需要在新的HTML片段中插入HTML。我可以用class=raw-html-embed将html包装在div中,这是代码片段插件通常生成的内容,但CkEditor不将其识别为新代码片段,它只是作为文本插入。

是否有一个API调用或其他过程,将允许触发创建一个新的HTML片段?

我最终查看了剪贴板源代码,并能够弄清楚它。只需要将字符串转换为视图元素,然后转换为模型片段,然后插入。文档中的一个简单示例会有所帮助!如果这不是最好的方法,请留下评论。

ckeditor.model.change(writer => {
const clipboard = ckeditor.plugins.get('Clipboard');
const view = clipboard._htmlDataProcessor.toView(newText);
const modelFragment = ckeditor.data.toModel(view, '$clipboardHolder');
if (modelFragment.childCount === 0) {
return;
}
ckeditor.model.insertContent(modelFragment);
});

最新更新