私はWebベースのコードエディタを作成しており、テキスト編集にテキストエリアを使用しています。タブを押しても要素の焦点がぼけないように、テキストエリアにタブサポートを追加したいと思います。私は次のように定義されたtextareaを持っています:
<textarea id="codeEdit_txt" rows="50" cols="80" onkeydown="return codeEdit_keyDown(event);">
および関数codeEdit_keyDownは次のように定義されます。
function codeEdit_keyDown(e) {
if (e.keyCode == 9) {
return false;
}
}
これにより、タブ文字が残されることはありませんが、タブキーを押してもテキスト領域の焦点がぼけることはありません。最初にこれを機能させようとしていたときに、以下のように関数を定義すると、カーソル位置にタブ文字が配置されることに気付きました。
function codeEdit_keyDown(e) {
if (e.keyCode == 9) {
alert("");
return false;
}
}
私の2つの質問は次のとおりです。
- アラートを追加するとタブが追加されるのはなぜですか?
- カーソル位置を見つけることなく、カーソル位置にタブを追加し、テキストをtexareaで分割し、手動でタブ文字を追加する方法はありますか(ユーザーがタブを押すたびにアラートを出す必要はありません)?
ありがとう
編集:これはChromeでのみ機能し、IE、Safari、Firefoxでは機能しないようです