3

我知道如何使用 CKEditor5 API 获取数据,正如文档和另一篇 SO帖子中提到的那样。

但是,我怎样才能得到纯文本?我试过跟随,但它什么也没返回。

alert($(editorObj.element).val());

有趣的注意事项:如果 TextArea 与 CKEditor 绑定,即使以下代码也不会返回任何内容

alert( $("#editor").val());

但是,如果我不将 TextArea 与 CKEditor 绑定,那么它可以正常工作。

任何解决方案或反馈将不胜感激。

4

2 回答 2

5

CKEditor 5 没有公开这样的方法,但您可以使用@ckeditor/ckeditor5-clipboard包的其中一个工具 - viewToPlainText().

当用户从编辑器复制一些内容时,剪贴板功能使用它来设置剪贴板的text/plain风格。

要使用它,您需要从源代码中使用 CKEditor 5(因为此功能未公开公开)。您可以在CKEditor 5 Framework 的快速入门指南中阅读相关内容。

您可以使用此方法对整个编辑器的视图进行字符串化:

import viewToPlainText from '@ckeditor/ckeditor5-clipboard/src/utils/viewtoplaintext';
import ClassicEditorBuild from '@ckeditor/ckeditor5-build-classic/src/ckeditor';

ClassicEditorBuild
    .create( element )
    .then( editor => {
        // Will get the stringified content.
        console.log( viewToPlainText( editor.editing.view.getRoot() ) );
    } )
    .catch( error => {
        console.error( error.stack );
    } )
于 2017-11-30T09:22:25.147 回答
3

好的,我找到了解决方法:

var plainText = $(editorObj.getData()).text();

在我们得到适当的解决方案或库公开的方法之前,我希望这种解决方法能够奏效。

于 2017-11-29T12:34:41.107 回答