TAB键的缩排处理
时间:2007-02-17 来源:PHP爱好者
文本框(Textarea)是比较常用的文本输入控件,经常在论坛和留言簿中使用。但是,一般的文本框不能直接输入TAB(一个空位),通常需要从别的地方复制过来。下面,小狗给大家送来一个可以直接输入TAB的文本框效果。
TAB键的缩排处理
<script>function editTab(){var code, sel, tmp, rvar tabs=""event.returnValue = falsesel =event.srcElement.document.selection.createRange()r = event.srcElement.createTextRange()switch (event.keyCode){case (8):if (!(sel.getClientRects().length > 1)){event.returnValue = truereturn}code = sel.texttmp = sel.duplicate()tmp.moveToPoint(r.getBoundingClientRect().left, sel.getClientRects()[0].top)sel.setEndPoint("startToStart", tmp)sel.text = sel.text.replace(/^t/gm, "")code = code.replace(/^t/gm, "").replace(/rn/g, "r")r.findText(code)r.select()breakcase (9):if (sel.getClientRects().length > 1){code = sel.texttmp = sel.duplicate()tmp.moveToPoint(r.getBoundingClientRect().left, sel.getClientRects()[0].top)sel.setEndPoint("startToStart", tmp)sel.text = "t"+sel.text.replace(/rn/g, "rt")code = code.replace(/rn/g, "rt")r.findText(code)r.select()}else{sel.text = "t"sel.select()}breakcase (13):tmp = sel.duplicate()tmp.moveToPoint(r.getBoundingClientRect().left, sel.getClientRects()[0].top)tmp.setEndPoint("endToEnd", sel)for (var i=0; tmp.text.match(/^[t]+/g) && i<tmp.text.match(/^[t]+/g)[0].length; i++)tabs += "t"sel.text = "rn"+tabssel.select()breakdefault:event.returnValue = truebreak}}</script><textarea cols=75 rows=20 onkeydown="editTab()"><script>alert("ok")</script></textarea>
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
php爱好者站 http://www.phpfans.net php基础|php进阶|php模板.
TAB键的缩排处理
<script>function editTab(){var code, sel, tmp, rvar tabs=""event.returnValue = falsesel =event.srcElement.document.selection.createRange()r = event.srcElement.createTextRange()switch (event.keyCode){case (8):if (!(sel.getClientRects().length > 1)){event.returnValue = truereturn}code = sel.texttmp = sel.duplicate()tmp.moveToPoint(r.getBoundingClientRect().left, sel.getClientRects()[0].top)sel.setEndPoint("startToStart", tmp)sel.text = sel.text.replace(/^t/gm, "")code = code.replace(/^t/gm, "").replace(/rn/g, "r")r.findText(code)r.select()breakcase (9):if (sel.getClientRects().length > 1){code = sel.texttmp = sel.duplicate()tmp.moveToPoint(r.getBoundingClientRect().left, sel.getClientRects()[0].top)sel.setEndPoint("startToStart", tmp)sel.text = "t"+sel.text.replace(/rn/g, "rt")code = code.replace(/rn/g, "rt")r.findText(code)r.select()}else{sel.text = "t"sel.select()}breakcase (13):tmp = sel.duplicate()tmp.moveToPoint(r.getBoundingClientRect().left, sel.getClientRects()[0].top)tmp.setEndPoint("endToEnd", sel)for (var i=0; tmp.text.match(/^[t]+/g) && i<tmp.text.match(/^[t]+/g)[0].length; i++)tabs += "t"sel.text = "rn"+tabssel.select()breakdefault:event.returnValue = truebreak}}</script><textarea cols=75 rows=20 onkeydown="editTab()"><script>alert("ok")</script></textarea>
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
php爱好者站 http://www.phpfans.net php基础|php进阶|php模板.
相关阅读 更多 +
排行榜 更多 +