Diodeus - James MacFarlane
Diodeus - James MacFarlane

Reputation: 114417

CKEditor: how to force P within DIV?

In the CMS I'm working on, I need to insert some custom HTML (which works):

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

The problem is that when editing what's inside the sidebar element, pressing ENTER duplicates the sidebar DIV instead of adding a P tag within the sidebar. How do I tell the editor to use a paragraph instead?

I expect this:

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

and get this:

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

I have not made any changes to "entermode" settings.

Upvotes: 1

Views: 2161

Answers (2)

Diodeus - James MacFarlane
Diodeus - James MacFarlane

Reputation: 114417

In addition to Alfonso's post, the second thing you need to do is insert your own paragraph as part of the wrapping element. That way CK will create a plain <p> tag inside the wrapper instead of <p class="sidebar">.

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

Found this clue from here: http://ckeditor.com/forums/CKEditor-3.x/inside

Upvotes: 2

AlfonsoML
AlfonsoML

Reputation: 12740

You have almost guessed the name of the preference: http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.forceEnterMode (yes I think that this setting should default to true, but at least we have the option to set it)

Upvotes: 2

Related Questions