入力できるようにするサンプルを作成しました。
起動画面

適当な文字を入力して

tabキーを押すとタブスペースが挿入されます。

文字列を選択して

タブキーを押すと選択中の各行にタブが挿入されます。

shiftキーを押したながらタブキーを押すと逆にタブスペースが減ります。

以下ソース
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html> | |
<title>tabスペース</title> | |
<body style="overflow:hidden"> | |
<textarea style="width:100%;height:100%" wrap=off></textarea> | |
</body> | |
<script> | |
resizeTo(300,300) | |
onload=function(){ | |
タブスペース入力可にする(document.getElementsByTagName('textarea')[0]) | |
} | |
タブスペース入力可にする=function(elem){ | |
elem.onkeydown=function(){ | |
if(elem.style.imeMode!='active' && event.keyCode!=9){return} | |
event.cancelBubble = true | |
var r=document.selection.createRange(), str=r.text | |
if(event.shiftKey){ | |
if(str){ | |
r.text = str.replace(/\n\t|\n {1,4}/g,'\n').replace(/^\t|^ {1,4}/,'') | |
}else{ | |
r.moveEnd('character',4) | |
r.text = r.text ? r.text.replace(/\t| +/,'') : '' | |
} | |
}else{ | |
r.text = str ? ('\t'+str.replace(/\n/g,'\n\t')) : '\t' | |
} | |
return false | |
} | |
} | |
</script> | |
</html> |
0 件のコメント:
コメントを投稿