#php #html #ckeditor
#php #HTML #ckeditor
Вопрос:
Я установил CKEditor, я обнаружил, что это приводит к большому пробелу между строками, хотя я просто нажимаю enter один раз, чтобы перейти к следующему! Я должен нажимать «Shift» для каждого ввода, чтобы получить линию разрыва! Есть идеи, как заставить это работать без нажатия Shift?
Строка 2, вызванная нажатием Shift enter. Строка 3, вызванная простым нажатием Enter.
Я использую PHP
Комментарии:
1. Или вы можете в принципе нажать
SHIFT ENTER
for<br>
.
Ответ №1:
Вы можете установить в своем config.js использовать <br>
вместо <p>
при нажатии клавиши ENTER:
config.enterMode = CKEDITOR.ENTER_BR;
Доступные флаги
CKEDITOR.ENTER_P (1) – new <p> paragraphs are created;
CKEDITOR.ENTER_BR (2) – lines are broken with <br> elements;
CKEDITOR.ENTER_DIV (3) – new <div> blocks are created.
Посмотрите документы для enterMode для получения дополнительной информации
Расширяя ответ Джозефа Силбера (который, как он знает, удален.. Он предложил использовать config.autoParagraph = false;
), IIRC (в руководстве не совсем ясно, что create wrapping blocks around inline contents
означает), autoParagraph
конфигурация добавляет <p></p>
пару вокруг каждого встроенного содержимого внутри тела. Таким образом, даже если вы нажмете Enter в пустой строке, она будет сгенерирована <p></p>
(или <p>amp;nbsp;</p>
, если так настроено). Руководство предлагает оставить этот параметр таким, какой он есть (поэтому установите значение true);
Комментарии:
1.
1
Кажется, ваш ответ более правильный, чем мой. Должно быть, я неправильно понялautoParagraph
параметр конфигурации. Что это дает?2. AFAIK, это добавляет блок <p></p> вокруг каждого содержимого. Итак, если вы нажмете Enter в пустой строке, он все равно напишет <p></p> . Я обновляю свой ответ
3. Документы CKEditor не рекомендуют использовать «config.enterMode = CKEDITOR.ENTER_BR;» из-за семантических значений и корректности. Если я использую режим BR, вызовет ли это угрозы безопасности?
4. Никакой угрозы безопасности вообще. Попросту говоря, разрывы строк — это разрывы строк, в то время как абзац имеет семантическое значение: они отмечают разные блоки. Итак, чтобы просто перейти к следующей строке (которая не имеет реального семантического значения, просто улучшает читаемость), вы используете SHIFT ENTER, а нажатие enter означает, что вы хотите отметить конец блока содержимого и начать другой. Вот почему они рекомендуют использовать <p> , потому что это правильная разметка в данной ситуации (‘из-за семантических значений и корректности’). Извините, если я плохо объяснил, но английский — не мой родной язык 🙂
5. Спасибо за этот ответ! Я заметил, что при использовании этого параметра будет добавлено 2 набора
<br/>
для каждого 1 ввода.
Ответ №2:
Я обнаружил, что это проще жестко закодировать. Откройте файл sites/all/libraries/ckeditor/ckeditor.js в Notepad Перейдите к строке 22 или найдите shiftEnterMode
Измените следующее:
enterMode:1,forceEnterMode:false,shiftEnterMode:2,
в:
enterMode:2,forceEnterMode:false,shiftEnterMode:1,
готово!
Комментарии:
1. Зачем вам идти и редактировать основные файлы, когда это можно сделать в config.js ?