CKEditor5 获取纯文本

Aza*_*Haq 4 javascript jquery ckeditor ckeditor5

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

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

alert($(editorObj.element).val());
Run Code Online (Sandbox Code Playgroud)

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

alert( $("#editor").val());
Run Code Online (Sandbox Code Playgroud)

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

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

Rei*_*mar 6

CKEditor 5 没有公开这样的方法,但您可以使用@ckeditor/ckeditor5-clipboard包 \xe2\x80\x93的实用程序之一viewToPlainText()

\n\n

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

\n\n

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

\n\n

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

\n\n
import viewToPlainText from \'@ckeditor/ckeditor5-clipboard/src/utils/viewtoplaintext\';\nimport ClassicEditorBuild from \'@ckeditor/ckeditor5-build-classic/src/ckeditor\';\n\nClassicEditorBuild\n    .create( element )\n    .then( editor => {\n        // Will get the stringified content.\n        console.log( viewToPlainText( editor.editing.view.getRoot() ) );\n    } )\n    .catch( error => {\n        console.error( error.stack );\n    } )\n
Run Code Online (Sandbox Code Playgroud)\n


Aza*_*Haq 5

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

var plainText = $(editorObj.getData()).text();
Run Code Online (Sandbox Code Playgroud)

在我们找到正确的解决方案或库公开的方法之前,我希望此解决方法能够发挥作用。