2

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

在 CKEditor 4 中是:

for(var instanceName in CKEDITOR.instances) 
    CKEDITOR.instances[instanceName].updateElement();

不适用于 CKEditor 5。

4

1 回答 1

6

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

ClassicEditor.create()函数返回一个Promise ,该 Promise将由编辑器实例解析。不再有任何全局变量保存已创建的编辑器。请参阅https://stackoverflow.com/a/46819396/3388924

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

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

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

于 2018-07-06T10:06:32.560 回答