先日「textareaでタブスペースを入力できるようにする」という記事を作成しました。
その後、そのサンプルを使っていたら「選択範囲末尾の改行がうまく制御できていない!」ということに気が付きました。
末尾の改行にも対応するサンプルを作成しました。
改行がうまく制御できないとはどういうことかというと、単純なサンプルは以下。
サンプルの実行画面
「123456」から「1」までの改行は取得できていますが「1」より後ろの改行はtextプロパティには含まれていません。ただし末尾の改行はRangeオブジェクトの対象にはなっているのでtextプロパティを書き換えると、その変更は末尾の改行に対しても影響を及ぼします。
上記を考慮しないでtextプロパティを書き換えると末尾の改行が失われます。
その問題を解決してタブキーによるインデントの増減を可能にしたサンプルが以下です。
以下ソース
0 件のコメント:
コメントを投稿