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

В 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».


person Diodeus - James MacFarlane    schedule 28.11.2012    source источник


Ответы (2)


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

person AlfonsoML    schedule 28.11.2012
comment
Это довольно близко, за исключением того, что теперь я получаю ‹p class=sidebar› вместо ‹div class=sidebar›. Мне вообще не нужно имя класса. - person Diodeus - James MacFarlane; 28.11.2012

В дополнение к сообщению Альфонсо второе, что вам нужно сделать, это вставить свой собственный абзац как часть элемента упаковки. Таким образом, 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

person Diodeus - James MacFarlane    schedule 28.11.2012