【问题标题】:CKEditor5 Get Plain TextCKEditor5 获取纯文本
【发布时间】:2018-05-13 02:54:52
【问题描述】:

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

但是,我怎样才能获得纯文本?我尝试了以下但它没有返回任何内容。

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

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

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

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

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

【问题讨论】:

  • 使用开发控制台查看实际的 dom 并查看哪个元素包含您的实际数据。
  • 在我们调用 updateEditorElement 函数之前,它不会更新编辑器的元素数据。但这也更新了格式化文本而不是纯文本。

标签: javascript jquery ckeditor ckeditor5


【解决方案1】:

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

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

要使用它,您需要从源代码中使用 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 );
    } )

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 嗯,这是一种解决方法!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多