私は、WordPress ページ クリエーターや Stack Overflow ポスト クリエーターに似た、オンラインのリッチ テキスト エディターに取り組んでいます。オンライン リッチテキスト エディターには、次の 2 つの異なるタイプがあることが指摘されています。
- WYSIWYG エディター、および
- HTML エディター
私は2番目のタイプを構築しています。残念ながら、どちら<textarea>
もcontenteditable
HTML リッチテキスト編集にはあまり便利ではありません。
(スタック オーバーフローで使用されている)の問題は、編集フィールドにテキスト レベルのセマンティクス<textarea>
を表示できないことです。単語をハイライトして太字にするだけではなく、ある種のマークアップ (例: *****太字*****) を挿入する必要があります。あまりユーザーフレンドリーではなく、実際に「リッチ」なテキストでもありません。
一方、使用contenteditable
するとこれらの問題は解決しますが、制御の問題が生じます。ブラウザーは、編集フィールドの見栄えを良くするために、あらゆる種類の HTML と CSS を挿入します。を押すと、ブラウザによっては、または、または、または...Enterが挿入されます。HTML からコピーしたいくつかの段落を貼り付けると、大量の過剰なマークアップが作成されます。ソース HTML の内容をも超えています。たとえば、次のソース コードは次のとおりです。<p>
<div>
<br>
<div><br></div>
<p>This is one paragraph!</p>
<p>This is another.</p>
Web サイトでは次のように表示されます。
This is one paragraph!
This is another.
...これをコピーしてcontenteditable
フォームに貼り付けると、次のようになります。
<p style="line-height: 1em; color: rgb(34, 34, 34); font-size: 12px;
white-space: normal;">This is one paragraph!</p>
<p style="line-height: 1em; color: rgb(34, 34, 34); font-size: 12px;
white-space: normal;">This is another.</p>
...インライン スタイルを導入し、場合によっては追加の HTML を導入します。
ブラウザーが要素に挿入する HTML の量を制限および制御する方法を見つけようとしていますが、それは WYSIWYG タイプの編集にのみ適してcontenteditable
いると考え始めており、HTML スタイルのリッチテキストでは機能しません。contenteditable
編集。
3 番目の選択肢はありますか、または誰かが私のニーズを満たす Javascript エディターを作成しましたか?