本文实例讲述了javascript实现textarea中tab键的缩排处理方法。分享给大家供大家参考。具体如下:
网上搜索了一下相关的解决方法,其它的有使用两三行javascript解决的,但都有一些小小的问题。还有使用JQuery的,也非常简洁。
本文的javascript代码实现了在TEXTAREA中输入TAB键并自动缩进的功能。不过这段代码在谷歌浏览器中不能正常执行,在
代码如下:
这一句会发生错误:
ncaught exception TypeError: Cannot read property 'selection' of undefined
代码在IE中正常执行,如下:
1))
{
event.returnValue = true
return
}
code = sel.text
tmp = 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(//r/n/g,"/r")
r.findText(code)
r.select()
break
case (9) :
if (sel.getClientRects().length > 1)
{
code = sel.text
tmp = sel.duplicate()
tmp.moveToPoint(r.getBoundingClientRect().left,sel.getClientRects()[0].top)
sel.setEndPoint("startToStart",tmp)
sel.text = "/t"+sel.text.replace(//r/n/g,"/r/t")
code = code.replace(//r/n/g,"/r/t")
r.findText(code)
r.select()
}
else
{
sel.text = "/t"
sel.select()
}
break
case (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
使用时:
代码如下:
希望本文所述对大家的javascript程序设计有所帮助。