【提案】編集支援ボタンのJavaScript修正(2)
先日も書きましたが、emやstrongタグの挿入は、pタグの自動挿入の内側になるようにすべきです。
現状、たとえば、
1行目(改行) 2行目(改行)
を(上手に)選択して、strong指定すると、
<strong>1行目(改行) 2行目</strong>(改行)
となるわけですが、これをダイアリーで表示すると、
<p><strong>1行目</p>(改行) <p>2行目</strong></p>(改行)
となり、マークアップが文法的におかしくなります。
ここは当然、
<p><strong>1行目</strong></p>(改行) <p><strong>2行目</strong></p>(改行)
となって欲しいので、支援ボタン押下後の編集画面は、
<strong>1行目</strong>(改行) <strong>2行目</strong>(改行)
であって欲しいです。
JavaScript修正案
strong、em、delの場合は、function markup()の
set_range(e, startv + str + endv);
を、
set_range(e, startv + str.replace(/\r?\n/ig, endv + '\n' + startv) + endv);
とすることを提案します。(引数による場合分けか別関数を用意する)
IE用カスタマイズを加えました!!
ひょっとして
MacやUN*Xのことを考えると、
set_range(e, startv + str.replace(/(\r?\n|\r)/ig, endv + "$1" + startv) + endv);
が正解かも。(未テスト)