Конфигурация fillEmptyBlocks в CKEditor 4.6.2 не помогает управлять вставкой тегов ‹br› в пустые DIV

Проблема 1: Я использую следующие плагины как часть настраиваемой сборки базовой версии CKEditor 4.6.2 - basicstyles, dialogui, dialog, clipboard, button, toolbar, enterkey, floatingspace, undo, divarea. Пустые блоки контейнера DIV содержат <br> элементов, добавленных CKEditor, что я пытаюсь предотвратить.

Файл конфигурации выглядит так -

CKEDITOR.editorConfig = function(config) {

  config.title = false;

  config.allowedContent = true;

  config.fillEmptyBlocks = false;

  // Toolbar groups configuration.
  config.toolbar = ... 
};

fillEmptyBlocks = false; не помешал CKEditor 4.6.2 вставить <br> элементы. Я попытался сделать то, что предлагает https://stackoverflow.com/a/34849579, установив для всех правил разрыва строки значение FALSE и Я не мог обойти проблему.

Я пробовал это со всей базовой версией CKEditor 4.6.2 и выпущенной версией 4.5.11, и это все еще происходит в них. Однако этой проблемы нет в CKEditor 4.1.3 и 4.4.0. Мне что-то не хватает в конфигурации или мне нужен дополнительный плагин, чтобы не было этой проблемы с 4.6.2?

Проблема 2:. Нажатие клавиши Backspace в пустом блоке div удаляет блок div из модели DOM. Это снова происходит с 4.6.2 и 4.5.11, а не с 4.1.3 или 4.4.0, есть ли конфигурация, которую я мог бы пропустить?

Отредактировано: <br> теги вставляются, несмотря на то, что для параметра fillEmptyBlocks установлено значение false во всех версиях, опубликованных в CKEditor 4.4.7, этого не происходит в 4.4.6. Глядя на примечания к выпуску, можно заметить, что http://dev.ckeditor.com/ticket/12735 изменение, которое вошло в 4.4.7. Есть ли другой способ исправить это?


person Naveen Kumar Ramamurthy    schedule 18.05.2017    source источник


Ответы (2)


Я разработал похожий редактор WYSIWYG с помощью CKEDITOR 4, где все работает нормально, хотя я использовал ckeditor.replace

Однако я загрузил его в гитхабе. Итак, вы можете обратиться туда, сравнить и исправить свой код, если хотите.

Щелкните здесь, чтобы перейти к проекту github.

Пожалуйста, спросите меня, если у вас возникнут проблемы !!

person S.Rakin    schedule 21.05.2017

Пожалуйста, попробуйте этот код, он работает для меня:

Для снятия br под нагрузкой

$('your_id').ckeditor();    
        CKEDITOR.on('instanceReady', function() { 
            $('div.application').find('br').remove();   // remove br tag added on empty divs
        });

для удаления & nbsp используйте это в функции уничтожения:

for(CKname in CKEDITOR.instances) // delete multiple instances of ckeditor
        {
            CKEDITOR.instances[CKname].destroy(function(){
                $("your_id").html(function (i, html) {
                    return html.replace(/&nbsp;/g, ''); // remove &nbsp;
                });
            })
        }
person sagar    schedule 27.04.2021