首页 文章

CKEditor5获取纯文本

提问于
浏览
0

我知道如何使用CKEditor5 API获取数据,因为它在文档和另一个SO post中提到过 .

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

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

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

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

但是,如果我没有将TextArea绑定到CKEditor,那么它可以正常工作 .

任何解决方案或反馈都将受到高度赞赏 .

2 回答

  • 0

    CKEditor 5不公开这样的方法,但你可以使用@ckeditor/ckeditor5-clipboard包的一个util - viewToPlainText() .

    当用户从编辑器复制某些内容时,剪贴板功能使用它在剪贴板中设置 text/plain flavor .

    要使用它,您需要从源代码中使用CKEditor 5(因为此功能未公开公开) . 您可以在CKEditor 5 Framework's Quick start指南中阅读相关内容 .

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

    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 );
        } )
    
  • 1

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

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

    在我们获得由库公开的正确解决方案或方法之前,我希望这种解决方法能够正常工作 .

相关问题