我知道如何使用 CKEditor5 API 获取数据,正如文档和另一个 SO post 中提到的那样。
但是,我怎样才能得到纯文本呢?我尝试跟随,但没有返回任何内容。
alert($(editorObj.element).val());
有趣的注意:如果 TextArea 与 CKEditor 绑定,即使下面的代码也不会返回任何内容
alert( $("#editor").val());
但是如果我不将 TextArea 与 CKEditor 绑定,那么它就可以正常工作。
任何解决方案或反馈将不胜感激。
@ckeditor/ckeditor5-clipboard
包的实用程序之一 – viewToPlainText()
。
当用户从编辑器复制某些内容时,剪贴板功能使用它来设置剪贴板中的
text/plain
风格。
要使用它,您需要从源代码使用 CKEditor 5(因为此功能未公开)。您可以在CKEditor 5 框架的快速入门指南中阅读相关内容。
您可以使用此方法对整个编辑器视图进行字符串化:
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 );
} )
好的,我找到了解决方法:
var plainText = $(editorObj.getData()).text();
在我们得到正确的解决方案或库公开的方法之前,我希望这个解决方法能够起作用。
我们使用
this.editor.editing.view.getDomRoot().innerText;