textareaでタブ入力
ここまで書いといてなんだが、textarea走査して頭にタブ入れてコピペで使い回せばいーじゃん、というのが後で浮かんだ。
var ta = document.getElementsByTagName( "textarea" );
for( var i in ta ) {
ta[i].onselect = ta[i].onclick = ta[i].onkeyup = storeCaret;
ta[i].onkeydown = keypress;
}
function storeCaret( ) {
if( this.createTextRange )
this.caretPos = document.selection.createRange( ).duplicate( );
else if( this.selectionStart )
this.caretPos = this.selectionStart;
else
this.caretPos = 0;
}
function keypress( e ) {
e = ( window.event ) ? window.event : e;
if( e.keyCode == 9 ) {
insertAtCaret( this, "\t" );
e.preventDefault( );
this.focus( );
return false;
}
}
function insertAtCaret( tarea, text ) {
if( tarea.createTextRange && tarea.caretPos ) {
tarea.caretPos.text =
( tarea.caretPos.text.charAt( tarea.caretPos.text.length - 1) == ' ' )
? text + ' ' : text;
}
else if( tarea.selectionStart && tarea.caretPos ) {
tarea.value = tarea.value.substr( 0, tarea.caretPos )
+ text
+ tarea.value.substr( tarea.caretPos );
}
else {
tarea.value = text + tarea.value;
}
}
どっか海外の掲示板からコード拝借したんだが場所忘れた。
Info
Navigation
- 関連のあるエントリ
- 2006-01-20 枠付きグラデで四角い角を丸くする - Nifty++
- 2006-08-01 ニンテンドーDSブラウザでAjax
- 2008-05-31 スクリプト色々更新
- 2006-07-08 PHP Markdown ExtraをJavaScriptに移植した
- 2006-03-05 OperaのJavaScriptでマウスホイールを検知できるようになった
- 新しいエントリ(日付順)
- トレジャーボックスがやたらと気合い入りまくりな件
- 古いエントリ(日付順)
- ゲームボーイアドバンス バリューセレクション - Nintendo
Comment
投稿したコメントは公開されません。サイトオーナーのみが閲覧できます。
返信等を希望する場合は、コメント内に連絡先のメールアドレスかサイトのURLを入力してください。
2006
0107