javascript實(shí)現(xiàn)textarea中tab鍵的縮排處理方法
本文實(shí)例講述了javascript實(shí)現(xiàn)textarea中tab鍵的縮排處理方法。分享給大家供大家參考。具體如下:
網(wǎng)上搜索了一下相關(guān)的解決方法,其它的有使用兩三行javascript解決的,但都有一些小小的問題。還有使用JQuery的,也非常簡(jiǎn)潔。
本文的javascript代碼實(shí)現(xiàn)了在TEXTAREA中輸入TAB鍵并自動(dòng)縮進(jìn)的功能。不過這段代碼在谷歌瀏覽器中不能正常執(zhí)行,在
這一句會(huì)發(fā)生錯(cuò)誤:
ncaught exception TypeError: Cannot read property 'selection' of undefined
代碼在IE中正常執(zhí)行,如下:
<mce:script type="text/javascript">
<!--
function editTab()
{
var code, sel, tmp, r
var tabs=""
event.returnValue = false
sel =event.srcElement.document.selection.createRange()
r = event.srcElement.createTextRange()
switch (event.keyCode)
{
case (8) :
if (!(sel.getClientRects().length > 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<tmp.text.match(/^[/t]+/g)[0].length; i++) tabs += "/t"
sel.text = "/r/n"+tabs
sel.select()
break
default :
event.returnValue = true
break
}
}
// -->
</mce:script>
使用時(shí):
希望本文所述對(duì)大家的javascript程序設(shè)計(jì)有所幫助。
- JavaScript讓Textarea支持tab按鍵的方法
- JavaScript判斷textarea值是否為空并給出相應(yīng)提示
- JavaScript中統(tǒng)計(jì)Textarea字?jǐn)?shù)并提示還能輸入的字符
- JavaScript動(dòng)態(tài)調(diào)整TextArea高度的代碼
- javascript獲得光標(biāo)所在的文本框(text/textarea)中的位置
- JavaScript 監(jiān)聽textarea中按鍵事件
- javascript textarea字?jǐn)?shù)限制
- JavaScript實(shí)現(xiàn)點(diǎn)擊自動(dòng)選擇TextArea文本的方法
相關(guān)文章
一定有你會(huì)用到的JavaScript一行代碼實(shí)用技巧總結(jié)
這篇文章主要為大家介紹了一定有你會(huì)用到的JavaScript一行代碼總結(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07
javascript模擬評(píng)分控件實(shí)現(xiàn)方法
這篇文章主要介紹了javascript模擬評(píng)分控件實(shí)現(xiàn)方法,涉及javascript操作頁(yè)面元素與樣式的相關(guān)技巧,需要的朋友可以參考下2015-05-05
聊聊JavaScript中的try...catch使用小技巧
作為一名web前端工程師,JavaScript中的try...catch是我們常用的特性之一,用于處理代碼中可能出現(xiàn)的錯(cuò)誤,本文小編將和大家一起聊聊JavaScript中的try...catch使用小技巧,需要的朋友可以參考下2023-11-11
JavaScript實(shí)現(xiàn)獲取年月日時(shí)間的方法總結(jié)
這篇文章主要為大家學(xué)習(xí)介紹了JavaScript如何實(shí)現(xiàn)獲取年月日以及各種格式的時(shí)間,文中的示例代碼簡(jiǎn)潔易懂,感興趣的小伙伴可以了解一下2023-08-08
JS如何實(shí)現(xiàn)封裝列表右滑動(dòng)刪除收藏按鈕
這篇文章主要介紹了JS如何實(shí)現(xiàn)封裝列表右滑動(dòng)刪除收藏按鈕,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
JS函數(shù)節(jié)流和函數(shù)防抖問題分析
這篇文章主要介紹了JS函數(shù)節(jié)流和函數(shù)防抖問題分析,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-12-12

