要素が編集可能であることの意味に関するDOM仕様は次のとおりです。http ://www.w3.org/TR/html5/editing.html#editable
既存のすべての段落タグと見出しタグをコンテンツ編集可能にするだけで、あなたが何を求めているかを理解していれば、あなたが望むものが得られるようです。ユーザーが新しい段落や見出しを挿入できるようにする場合、編集中にEnterキーを押すと、Chromeでタグとして改行が挿入され<br>ますが、ユーザーがHTMLタグを入力すると、それらはエスケープされ、テキストとして表示されます。他のフォーマットされたコンテンツの挿入に関しては、それは完全にユーザーエージェント次第です。Chromeでの私のテストでは、ユーザーが太字/斜体などを挿入できないようです。文章。
編集:どうやらChrome(そしておそらく拡張機能、Safariでも)で、Control-I、Control-B、Control-Uを押すと、リッチテキストエディタに期待するのと同じ動作が発生します!
また、Firefoxでテストしたところ、Chromeとは異なり、仕様にまったく反していないことがわかりました。実際には、属性が追加された'sの<p>代わりに新しいタグが挿入されます。これを削除する必要はありません。Firefoxが仕様に準拠している場合、タグの外側にそのようにテキストを挿入することでDOMを壊すことはありません。ただし、ChromeとFirefoxを使用しているユーザーは異なるHTML構造を生成することに注意してください。これは、Javascriptまたはサーバー側のサニタイズでスムーズにすることができます...このマシンでは、処理方法を理解するためのIEも利用できません。残念ながら、改行、およびMicrosoftのドキュメントには指定されていません。<br>_moz_dirty=""
サーバーにプッシュする場合は、AJAXを使用して、問題の要素のテキストコンテンツをプルし(またはコンテンツ全体<div>を編集可能にし)、テキストコンテンツの配列を作成して、サーバーにPOSTすることでこれを行うことができます。これはjQueryを使用して行うのは非常に簡単です(これについては、リクエストに応じてさらにヘルプを提供できます)。