如何在 CKEditor 5 中更新元素()?

Dan*_*cci 1 ckeditor5

我正在尝试更新一些已初始化的 CKEditor,但它不起作用。

在 CKEditor 4 中,它是:

for(var instanceName in CKEDITOR.instances) 
    CKEDITOR.instances[instanceName].updateElement();
Run Code Online (Sandbox Code Playgroud)

不适用于 CKEditor 5。

pom*_*mek 5

我的答案将取决于ClassicEditor但它也适用于InlineEditorBalloonEditor

ClassicEditor.create()函数返回一个Promise,它将被编辑器实例解析。不再有任何保存创建的编辑器的全局变量。请参阅/sf/answers/3277357751/

如果你在一个<textarea>元素上初始化编辑器(它应该在一个<form>元素内),<textarea>当表单提交时, 的值将自动更新。你可以看到源代码

当然,您可以手动更新元素。见ClassicEditor.updateElement()方法。我还准备了一个在线演示:https : //jsfiddle.net/pomek/k1wp093n/

请记住,editor.updateElement()未来版本中的函数将重命名为editor.updateSourceElement(). 看ckeditor/ckeditor5-core#129