ブログエディターをShadow DOM化しました
ブログ記事中のHTMLタグにidを設定する際に、ブログエディターやエディターの外側に設定されているidと重複すると問題が生じる可能性がありましたので、
ブログエディターの編集中記事部分をShadow DOM化しました。
ブログエディターは複雑なんで、この変更で問題が生じないか疑わしいので、元に戻す可能性もあります。
なにか不具合に気づかれましたらご報告お願いします。
ブログエディターの編集中記事部分をShadow DOM化しました。
ブログエディターは複雑なんで、この変更で問題が生じないか疑わしいので、元に戻す可能性もあります。
なにか不具合に気づかれましたらご報告お願いします。
問題があったので戻しました。
FirefoxだとShadow DOM化しても問題がない様だったのですが、Chromiumでのテストで問題がありました。
どうも選択範囲(SelectionやRange)の要素(Range.commonAncestorContainerやSelection.focusNodeなど)がFirefoxだとShadowRoot内にある選択範囲のテキストノードになるようなのですが、
ChromiumだとSelectionの文字列自体は合っているようなのですが、Selection.anchorNodeやSelection.focusNodeが選択範囲のテキストノードではなくattachShadowした要素の親要素になってしまっているようで、SelectionからRangeを取得した場合もおかしいので選択範囲の編集が機能していませんでした。
Firefoxが正解でChromiumがバグだと思うのですが、現時点ではエディターのShadow DOM化は見送ります。
FirefoxだとShadow DOM化しても問題がない様だったのですが、Chromiumでのテストで問題がありました。
どうも選択範囲(SelectionやRange)の要素(Range.commonAncestorContainerやSelection.focusNodeなど)がFirefoxだとShadowRoot内にある選択範囲のテキストノードになるようなのですが、
ChromiumだとSelectionの文字列自体は合っているようなのですが、Selection.anchorNodeやSelection.focusNodeが選択範囲のテキストノードではなくattachShadowした要素の親要素になってしまっているようで、SelectionからRangeを取得した場合もおかしいので選択範囲の編集が機能していませんでした。
Firefoxが正解でChromiumがバグだと思うのですが、現時点ではエディターのShadow DOM化は見送ります。