我正在尝试更新一些已初始化的 CKEditors,但它不起作用。
在 CKEditor 4 中是:
for(var instanceName in CKEDITOR.instances)
CKEDITOR.instances[instanceName].updateElement();
不适用于 CKEditor 5。
我正在尝试更新一些已初始化的 CKEditors,但它不起作用。
在 CKEditor 4 中是:
for(var instanceName in CKEDITOR.instances)
CKEDITOR.instances[instanceName].updateElement();
不适用于 CKEditor 5。
我的答案将取决于ClassicEditor但它也适用于InlineEditor和BalloonEditor。
该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