rnotepad.php を修正 2019-08-28 (水) 21:24:32+09:00

開発

「枠」ボタンを追加した。選択されたテキストを囲んでボタンを押すとタグを挿入し、四角い枠内にテキストを表示するようにレイアウトする。

こんな感じ。

「コード」ボタンを追加した。選択されたテキストを囲んでボタンを押すとタグを挿入し、 prism を使ったソースコード表示(行番号表示設定)をするようにレイアウトする。

また、先日、追記用の入力欄も追加したので、「 URL 」「強調」「斜体」「下線」「取消」「引用」「上付」「下付」「枠」「コード」の各ボタンが、本文入力欄、追記入力欄のどちらかフォーカスのある方に作用するようにした。

今まで、枠をつけたりソースコード表示をしたりするたびに、手作業でタグを書き込んでいたので、大分楽になった。

今回の修正で少し考える必要があったのは、ボタンが押されたときに選択されている文字列を把握するために、 textarea 要素に対して onSelect でテキストが選択されるたびにイベントを起こしていたのだが、逆にテキストの選択が解除されたときに起きるイベントが javascript のイベントに存在しなかったため、どのように実現するかという点だった。

結局、 textarea 要素に対して onkeyup と onmouseup を補足し、そのイベントハンドラ内で getSelection(e) で選択文字列を取得し選択中の文字列として保存することで、選択の解除を補足することができた。( onkeydown, onmousedown ではタイミングが早すぎて、まだ選択中の文字列が取得される。)

お名前:

URL または e-mail (option):

CAPTCHA Image 左の画像内の式の計算結果を入力:
TWEET
この記事のリンク元

この記事のリンク用URL&トラックバックURL : https://red-souls.jp/ichounoki/rnote/dev/20190828_212432537675.htm

キーワード: rNote rnotepad.php javascript