Как проверить содержимое в редакторе CKEditor 5? - PullRequest
0 голосов
/ 21 мая 2018

Я пытаюсь выяснить, как я могу проверить содержимое в редакторе, например, убедившись, что содержимое имеет длину не менее 200 символов.Обычно, с помощью обычной текстовой области, я могу получить значение и проверить его оттуда.Насколько я понимаю, с этим не все так просто.

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

Я написал простую функцию, которая позволяет подсчитывать, сколько символов вставлено в документ.

/**
 * Returns length of the text inserted to the specified document.
 *
 * @param {module:engine/model/document~Document} document
 * @returns {Number}
 */
function countCharacters( document ) {
    const rootElement = document.getRoot();

    return countCharactersInElement( rootElement );

    // Returns length of the text in specified `node`
    //
    // @param {module:engine/model/node~Node} node
    // @returns {Number}
    function countCharactersInElement( node ) {
        let chars = 0;

        for ( const child of node.getChildren() ) {
            if ( child.is( 'text' ) ) {
                chars += child.data.length;
            } else if ( child.is( 'element' ) ) {
                chars += countCharactersInElement( child );
            }
        }

        return chars;
    }
}

Здесь вы можете проверить, как это работает - https://jsfiddle.net/pomek/kb2mv1fr/.

0 голосов
/ 21 мая 2018

CKeditor имеет собственную встроенную функцию для извлечения данных в текстовом редакторе:

textbox_data = CKEDITOR.instances.mytextbox.getData();//mytextbox is id of textarea 

Тогда вы можете просто использовать свойство длины строкового объекта:

alert(str.length);
...