如何从CKEditor 5实例获取数据

如何从CKEditor 5实例获取数据,ckeditor,ckeditor5,Ckeditor,Ckeditor5,我知道对于CKEditor 4,您可以获得如下文本区域数据: var content = CKEDITOR.instances['comment'].getData(); var editor; ClassicEditor .create(document.querySelector('#editor')) .then(editor => { editor=editor; }) .catch(error => { co

我知道对于CKEditor 4,您可以获得如下文本区域数据:

var content = CKEDITOR.instances['comment'].getData();
var editor;
ClassicEditor
    .create(document.querySelector('#editor'))
    .then(editor => {
        editor=editor;
    })
    .catch(error => {
        console.error(error);
    });

CKEditor 5是如何做到这一点的?

您可以在指南中找到答案

基本上,在CKEditor 5中没有单一的全局编辑器存储库(如旧的
CKEditor.instances
global变量)。这意味着您需要保留对所创建编辑器的引用,并在需要检索数据时使用该引用:

ClassicEditor
    .create( document.querySelector( '#editor' ) )
    .then( editor => {
        editor.getData(); // -> '<p>Foo!</p>'
    } )
    .catch( error => {
        console.error( error );
    } );
请参阅此JSFIDLE:


编辑:如果需要管理多个编辑器实例,请参阅。

声明一个全局变量,然后使用editor.getData()。大概是这样的:

var content = CKEDITOR.instances['comment'].getData();
var editor;
ClassicEditor
    .create(document.querySelector('#editor'))
    .then(editor => {
        editor=editor;
    })
    .catch(error => {
        console.error(error);
    });
然后,在事件处理程序中,这应该可以工作:

editor.getData();
使用“var theEditor”将是一个更好的选择,而不是“let theEditor”防止标识符已被声明为“多次加载时出错”