ここでの問題の根本は、ブラウザベースのWYSIWYGエディタがブラウザを使用して編集を行うことです。
WYSIWYGエディターの基本コンポーネントは、フラグが設定された単なる標準要素(a<div>
など)です。contentEditable
それでおしまい。ブラウザが実際の編集を制御します。javascriptコードはこれを制御していませんが、ブラウザは制御しています。また、ブラウザが異なれば、実装も異なります。
そのため、ブラウザごとに異なる結果が得られます。エディター内で実際にできることは多くありません。ブラウザで作成されたコンテンツを別のブラウザにロードすると、実際の編集を行わなくても、新しいブラウザが望むように再フォーマットされることがわかります。
これは、すべてのブラウザベースのWYSIWYGエディタで発生します。それらのいくつかはブラウザの違いを正規化しようとするかもしれませんが、あなたが見てきたように成功は限られています。そして、ユーザーはある程度の制御を持っています。たとえば、ブラウザは、新しい行の場合と比較して、 shift+に対して異なる反応を示すことがよくあります。しかし、それはユーザーの手に委ねられます。ユーザーはそうする必要があることに気付いていない可能性があります(結局のところ、wysiwygエディターを使用して、ユーザーにとってより簡単で、より複雑ではありません)。returnreturn
したがって、全体として、本当に期待できる最善の方法は、サーバー側のコードで編集後に正規化することです。