javascript實(shí)現(xiàn)textarea中tab鍵的縮排處理方法
本文實(shí)例講述了javascript實(shí)現(xiàn)textarea中tab鍵的縮排處理方法。分享給大家供大家參考。具體如下:
網(wǎng)上搜索了一下相關(guān)的解決方法,其它的有使用兩三行javascript解決的,但都有一些小小的問題。還有使用JQuery的,也非常簡潔。
本文的javascript代碼實(shí)現(xiàn)了在TEXTAREA中輸入TAB鍵并自動縮進(jìn)的功能。不過這段代碼在谷歌瀏覽器中不能正常執(zhí)行,在
這一句會發(fā)生錯誤:
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>
使用時:
希望本文所述對大家的javascript程序設(shè)計(jì)有所幫助。
- JavaScript讓Textarea支持tab按鍵的方法
- JavaScript判斷textarea值是否為空并給出相應(yīng)提示
- JavaScript中統(tǒng)計(jì)Textarea字?jǐn)?shù)并提示還能輸入的字符
- JavaScript動態(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)擊自動選擇TextArea文本的方法
相關(guān)文章
JS數(shù)組合并push與concat區(qū)別分析
這篇文章主要介紹了JS數(shù)組合并push與concat區(qū)別,結(jié)合實(shí)例形式分析了JavaScript中針對數(shù)組合并操作使用push與concat的區(qū)別,需要的朋友可以參考下2015-12-12深入淺析JavaScript中prototype和proto的關(guān)系
prototype,每一個函數(shù)對象都有一個顯示的prototype屬性,而proto每個對象都有一個名為_proto_內(nèi)部隱藏屬性。本文給大家介紹JavaScript中prototype和proto的關(guān)系,需要的朋友參考下2015-11-11xmlplus組件設(shè)計(jì)系列之網(wǎng)格(DataGrid)(10)
xmlplus 是一個JavaScript框架,用于快速開發(fā)前后端項(xiàng)目。這篇文章主要介紹了xmlplus組件設(shè)計(jì)系列之xmlplus網(wǎng)格,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05微信小程序?qū)崿F(xiàn)獲取準(zhǔn)確的騰訊定位地址功能示例
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)獲取準(zhǔn)確的騰訊定位地址功能,結(jié)合實(shí)例形式詳細(xì)分析了微信小程序使用騰訊地理位置接口的相關(guān)注冊、操作步驟及接口使用技巧,需要的朋友可以參考下2019-03-03