最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript實(shí)現(xiàn)textarea中tab鍵的縮排處理方法

 更新時(shí)間:2015年06月26日 15:16:21   作者:jcwKyl  
這篇文章主要介紹了javascript實(shí)現(xiàn)textarea中tab鍵的縮排處理方法,涉及javascript處理鼠標(biāo)事件及頁(yè)面元素的相關(guān)技巧,需要的朋友可以參考下

本文實(shí)例講述了javascript實(shí)現(xiàn)textarea中tab鍵的縮排處理方法。分享給大家供大家參考。具體如下:

網(wǎng)上搜索了一下相關(guān)的解決方法,其它的有使用兩三行javascript解決的,但都有一些小小的問(wèn)題。還有使用JQuery的,也非常簡(jiǎn)潔。

本文的javascript代碼實(shí)現(xiàn)了在TEXTAREA中輸入TAB鍵并自動(dòng)縮進(jìn)的功能。不過(guò)這段代碼在谷歌瀏覽器中不能正常執(zhí)行,在

復(fù)制代碼 代碼如下:
sel =event.srcElement.document.selection.createRange()

這一句會(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í):

復(fù)制代碼 代碼如下:
<textarea cols=80 rows=20 name="input" onkeydown="editTab()"></textarea>

希望本文所述對(duì)大家的javascript程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論

手游| 凤翔县| 上虞市| 重庆市| 上栗县| 西和县| 辽阳县| 安福县| 阳东县| 额济纳旗| 永仁县| 犍为县| 石阡县| 武城县| 抚宁县| 隆尧县| 桦川县| 永清县| 乌鲁木齐县| 甘肃省| 湛江市| 谷城县| 讷河市| 高碑店市| 海安县| 正蓝旗| 阿拉善盟| 阳西县| 屯门区| 皮山县| 枣阳市| 邹平县| 揭东县| 子长县| 叶城县| 防城港市| 德清县| 穆棱市| 芒康县| 黔南| 凉山|