Ответ 1
Добавьте следующее в файл config.js для CKEditor:
config.enterMode = CKEDITOR.ENTER_BR;
Пример:
...
CKEDITOR.editorConfig = function (config)
{
config.enterMode = CKEDITOR.ENTER_BR;
...
};
подробности
Настройка конфигурации, которая управляет этим поведением, основана на том, что вы хотите, чтобы происходило, когда пользователь нажимает Enter.
На всякий случай, если кто-то, кто плохо знаком с работой с HTML, прочтет это, я включу некоторые базовые объяснения связанных с этим понятий и почему тег нужно будет вставлять при нажатии клавиши Enter.
Мы знаем, что если мы введем какой-то текст в документ HTML, а затем добавим дополнительный текст в новую строку, браузер не отобразит текст в виде двух строк, он проигнорирует любые возвраты каретки и сведет несколько пробелов между символами в один пространство.
Следующий HTML:
qwer
tyui
Будет отображаться как:
qwer tyui
Поэтому редактору необходимо вставить тег HTML, чтобы сообщить браузеру, что он должен отображать вторую строку текста в новой строке.
Параметр конфигурации, который управляет этим, является config.enterMode
и он предлагает три варианта:
1 - вставить абзац
Настройка по умолчанию создает элемент абзаца при каждом нажатии Enter:
config.enterMode = CKEDITOR.ENTER_P; // inserts '<p>...</p>'
2 - вставить "div"
Вы можете создать элемент div
вместо абзаца:
config.enterMode = CKEDITOR.ENTER_DIV; // inserts '<div></div>'
3 - Вставить разрыв (настройка, которую вы ищете)
Если вы предпочитаете не переносить текст во что-либо, вы можете вставить тег разрыва строки:
config.enterMode = CKEDITOR.ENTER_BR; // inserts '<br />'
Документация CKEditor указывает, что использование настройки ENTER_BR
не рекомендуется:
Примечание. Рекомендуется использовать параметр
CKEDITOR.ENTER_P
из-за его семантического значения и правильности. Редактор оптимизирован для этого параметра.
Еще один связанный параметр "AutoParagraph"
Существует вторая настройка, которая управляет аналогичной ситуацией - config.autoParagraph
. Как это работает, зависит от настройки config.enterMode
описанной выше.
autoParagraph
определяет, будут ли встроенные элементы, такие как span
, переноситься в элемент блока (p
или div
), заданный параметром enterMode
. По умолчанию используется обтекание встроенных элементов, поэтому, если вы введете диапазон как этот (как HTML):
<span>asdfg</span>
Он будет заключен в элемент ap или div следующим образом:
<p><span>asdfg</span></p>
или это:
<div><span>asdfg</span></div>
Встроенный элемент не будет перенесен, если для этого параметра установлено значение false
или для enterMode
установлено enterMode
CKEDITOR.ENTER_BR
.
Документация CKEditor включает это примечание о config.autoParagraph
:
Примечание. Изменение значения по умолчанию может привести к непредсказуемым проблемам с юзабилити.
Еще больше настроек
Есть еще три параметра, которые в некоторой степени связаны с этой темой:
-
config.fillEmptyBlocks
-
config.forceEnterMode
-
config.ignoreEmptyParagraph
Ссылка
Полный список доступных параметров конфигурации можно найти здесь: