Bezdepbonusu7Программирование: статьи и ответы

Вопрос

CKEditor: как заставить P внутри DIV?

Автор вопроса: Diodeus - James MacFarlaneОтветов: 2

В CMS, над которой я работаю, мне нужно вставить некоторый собственный HTML (который работает):

var element = CKEDITOR.dom.element.createFromHtml("<div class='sidebar'>Edit Sidebar Text</div>");

Проблема в том, что при редактировании того, что находится внутри элемента боковой панели, нажатие клавиши ENTER дублирует DIV боковой панели вместо добавления тега P в боковую панель. Как сказать редактору использовать вместо этого абзац?

Я ожидаю этого:

<div class="sidebar">
    Enter sidebar text
<p></p>
</div>

и получить это:

<div class="sidebar">
    Enter sidebar text</div>
<div class="sidebar">
    &nbsp;</div>

Я не вносил никаких изменений в настройки "entermode".

javascripthtmlckeditor

Ответы

Ответ 1 · рейтинг 2 · AlfonsoML

Вы почти угадали название предпочтения: http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.forceEnterMode (да, я думаю, что этот параметр по умолчанию должен иметь значение true, но, по крайней мере, у нас есть возможность установить его)

Ответ 2 · рейтинг 2 · Diodeus - James MacFarlane

В дополнение к сообщению Альфонсо второе, что вам нужно сделать, это вставить свой собственный абзац как часть элемента упаковки. Таким образом, CK создаст простой тег <p> внутри оболочки вместо <p class="sidebar">.

var element = CKEDITOR.dom.element.createFromHtml("<div class='sidebar'><p>Edit Sidebar Text</p></div>");

Нашел эту подсказку отсюда: http://ckeditor.com/forums/CKEditor-3.x/inside

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы