WYSIWYGエディターを使用していて、テキストを選択して、たとえば太字で適用すると、ブラウザーは選択範囲を<span style="font-weight:bold">
タグでラップします(呼び出したdocument.execCommand("useCSS", false)
および/またはdocument.execCommand("styleWithCSS", true)
)。ここで、そのサブセットを選択して再度太字を適用すると、元の太字タグが次のようなものに分割されます。
<span style="font-weight:bold">Something</span>
Not selected
<span style="font-weight:bold">Selected</span>
私が取り組んでいる製品では、execCommandで直接サポートされていない機能(フォントファミリとフォントサイズの両方を適用するためのテキストのレベル(クラス)の追加など)を含む、さまざまなWYSIWYG機能をサポートしています。ネストされたタグで問題が発生しています。スタイリングから現在の範囲を削除し、基本的に前のタグを閉じて、コンテンツの後に新しいタグを開くようにブラウザーに指示する方法はありますか?
execCommandリファレンスにすぐに何かが表示されません。
rangy 1.2.3を使用してある程度の成功を収めていますが、欠落しているコマンドがあるかどうかはわかりません。
上記の例に太字と斜体を追加すると、これはより複雑になります。次に、真ん中の太字を削除すると、3つのスパンが生成され、2つは太字と斜体のテキストで、真ん中は斜体だけです。
現時点では、エディターの使用をChromeに制限しています。