CKEditor: Как установить фокус на конец содержимого, когда достигнут максимальный предел - PullRequest
0 голосов
/ 25 января 2019

Я использую CKEditor версии 16 в приложении Angular 7.Я установил максимальную длину символа 4096. Как только пользователь, пытающийся набрать 4097-й символьный элемент управления, переходит к запуску и показывает то, что набрано от начала до нажатия клавиш или вызывает задержку при наборе.Позже дополнительный символ, показанный в начале, будет автоматически удален.

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

CKEDITOR.editorConfig = function( config ) {
    config.startupFocus= true;
    config.extraPlugins = 'wordcount';
    config.wordcount = {
        showWordCount: false,
        showCharCount: true,
        maxCharCount: 4096,
        showParagraphs: false,
      countSpacesAsChars: true
    };
    config.pasteFromWordRemoveFontStyles = false;
    config.pasteFromWordRemoveStyles = false;
    config.extraAllowedContent= 'a[href]';
    config.removePlugins = 'resize';
    config.enterMode = CKEDITOR.ENTER_BR;
    config.autoParagraph = false;
};

1 Ответ

0 голосов
/ 14 февраля 2019

Вы можете попытаться получить доступ к экземпляру ck editor.

    CKEDITOR.instance.editor1.on("key", function (evt){
    let instance = CKEDITOR.instance.editor1
    const data = instance.document.getBody().getText();
    const currentCount = data.replace(/<[^>]*>|\s/g, "").length;

const maxCount = instance.config.wordcount.maxCharCount;
    const isFunKey = (evt.data.keyCode === 8 || evt.data.keyCode === 46 ||

evt.data.keyCode === 35 || evt.data.keyCode === NumberConstants.36 ||
    evt.data.keyCode === 37 || evt.data.keyCode === 38 ||
    evt.data.keyCode === 39 || evt.data.keyCode === 40 ||
    evt.data.keyCode === 1114129 );

      if (currentCount >= maxCount) {
        if (!isFunKey) {
          evt.cancel();
        }
      } 


    }) 

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

...