リッチテキストエディターの改行時の挙動が変更され、<br> の代わりに <div> が生成されます

公開日: | カテゴリー: DOM, HTML

概要

Firefox では、リッチテキストエディター 上で Enter キーを押すと <br> 要素が挿入されます。一方、Internet Explorer では <p> が、Google Chrome では <div> が、それぞれ追加されます。多くの議論が重ねられた結果、Firefox 60 でこの挙動が Chrome に合わせる形で変更され、<div> が新たな既定のセパレーターとして使用されます。

「Firefox」と入力して「Fire」と「fox」の間で Enter を押すと、結果として得られる HTML は Fire<br>fox ではなく <div>Fire</div><div>fox</div> となります。

この挙動は、バージョン 55 以降の Firefox Nightly と早期 Beta/DevEdition では既に初期設定で有効となっていますが、execCommand メソッドの DefaultParagraphSeparator コマンドで制御可能です。

// 従来通り <br> を挿入するには
document.execCommand("DefaultParagraphSeparator", false, "br");
// 代わりに <p> を生成するには
document.execCommand("DefaultParagraphSeparator", false, "p");

参考資料