CKEditor5 Получить простой текст

Я знаю, как получить данные с помощью CKEditor5 API, как указано в документации и на другом SO опубликовать.

Однако как я могу получить простой текст? Я попробовал подписаться, но ничего не вернул.

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

Интересное примечание: даже следующий код ничего не возвращает, если TextArea связывается с CKEditor

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

Но если я не привяжу TextArea к CKEditor, он будет работать нормально.

Мы будем очень благодарны за любое решение или отзыв.


person Azaz ul Haq    schedule 29.11.2017    source источник
comment
Используйте консоль разработчика, чтобы взглянуть на фактический dom и увидеть, какой элемент содержит ваши фактические данные.   -  person blueren    schedule 29.11.2017
comment
Он не обновляет данные элемента редактора, пока мы не вызовем функцию updateEditorElement. Но это тоже обновляет форматированный текст, а не простой текст.   -  person Azaz ul Haq    schedule 29.11.2017


Ответы (2)


CKEditor 5 не предоставляет такой метод, но вы можете использовать одну из утилит _1 _ пакет - 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 );
    } )
person Reinmar    schedule 30.11.2017

Хорошо, я нашел обходной путь:

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

Я надеюсь, что этот обходной путь сработает, пока мы не получим правильное решение или метод, представленный библиотекой.

person Azaz ul Haq    schedule 29.11.2017
comment
Хорошо, но с новыми строчками не работает - person Ramast; 08.07.2021