2017年3月29日水曜日

テキストエリア内でのタブキー操作

先日「textareaでタブスペースを入力できるようにする」という記事を作成しました。
その後、そのサンプルを使っていたら「選択範囲末尾の改行がうまく制御できていない!」ということに気が付きました。

末尾の改行にも対応するサンプルを作成しました。


改行がうまく制御できないとはどういうことかというと、単純なサンプルは以下。

サンプルの実行画面



「123456」から「1」までの改行は取得できていますが「1」より後ろの改行はtextプロパティには含まれていません。ただし末尾の改行はRangeオブジェクトの対象にはなっているのでtextプロパティを書き換えると、その変更は末尾の改行に対しても影響を及ぼします。

上記を考慮しないでtextプロパティを書き換えると末尾の改行が失われます。
その問題を解決してタブキーによるインデントの増減を可能にしたサンプルが以下です。

以下ソース

0 件のコメント:

コメントを投稿