javascript实现textarea中tab键的缩排处理方法_javascript技巧

本文实例讲述了javascript实现textarea中tab键的缩排处理方法。分享给大家供大家参考。具体如下:

网上搜索了一下相关的解决方法,其它的有使用两三行javascript解决的,但都有一些小小的问题。还有使用JQuery的,也非常简洁。

本文的javascript代码实现了在TEXTAREA中输入TAB键并自动缩进的功能。不过这段代码在谷歌浏览器中不能正常执行,在

复制代码 代码如下:

sel =event.srcElement.document.selection.createRange()

这一句会发生错误:
ncaught exception TypeError: Cannot read property 'selection' of undefined

代码在IE中正常执行,如下:

<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>

使用时:

复制代码 代码如下:

<textarea cols=80 rows=20 name="input" onkeydown="editTab()"></textarea>

希望本文所述对大家的javascript程序设计有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索javascript
, tab
, textarea
缩排
textarea tab键、textarea tab、html textarea tab、javascript textarea、javascript tab 切换,以便于您获取更多的相关知识。

时间: 2024-09-19 08:17:58

javascript实现textarea中tab键的缩排处理方法_javascript技巧的相关文章

javascript实现textarea中tab键的缩排处理方法

  本文实例讲述了javascript实现textarea中tab键的缩排处理方法.分享给大家供大家参考.具体如下: 网上搜索了一下相关的解决方法,其它的有使用两三行javascript解决的,但都有一些小小的问题.还有使用JQuery的,也非常简洁. 本文的javascript代码实现了在TEXTAREA中输入TAB键并自动缩进的功能.不过这段代码在谷歌浏览器中不能正常执行,在 代码如下: sel =event.srcElement.document.selection.createRange

JavaScript在网页中画圆的函数arc使用方法_javascript技巧

一.arc所需要的参数设置 复制代码 代码如下: arc(x, y, radius, startAngle, endAngle, counterclockwise); 其中x,y,radius都很容易理解,那么重点说说startAngle,endAngle和counterclockwise三个参数! 二.arc参数详解     1,startAngle和endAngle分别指圆开始的角度和结束的角度,手册上面说的是开始的角度为0,结束的角度为Math.PI*2,这样正好画一个圆     2,下面

网页防止tab键的使用快速解决方法_javascript技巧

在一些网页或者说在弹出层的使用下,一般情况在ie浏览器下 我们都不希望使用tab 或者说  使用tab键后都会造成一定的问题,例如: 在弹出层后,tab键还可以在目页中操作,这回导致脚本错误. 那么我们如果避免这种情况呢? 通过键盘事件来控制 复制代码 代码如下: <script language="javascript" type="text/javascript" src="../javascript/jquery-1.2.6.min.js&qu

JavaScript获取table中某一列的值的方法_javascript技巧

1.实现源码 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-eq

全面解析Bootstrap中tab(选项卡)的使用方法_javascript技巧

本文实例为大家介绍实现tab选项卡的应用,此插件相对比较简单,具体内容如下源码文件: tab.js 实现原理:1.单击一个元素时,首先将原来高亮的元素取消 2.然后给被单击元素进行高亮 3.如果单击元素是下拉框中某个选项,则选中本身,还要选中下拉框 5.如果定义了动画,先执行动画,然后回调 源码分析:1.Show方法,是在单击一个元素的时候触发,会触发如下四个事件  1.1.Hiden.bs.tab:隐藏上一个元素   1.2.Show.bs.tab:显示当前元素   1.3.Hideen.bs

javascript事件函数中获得事件源的两种不错方法_javascript技巧

在javascript的事件响应中,许多情况我们需要获得事件源对象来对其属性进行更改,比如更改img的src属性.在事件响应函数中获得事件源的方法有如下两种: 第一种: 直接把作为一个参数传入.例如 复制代码 代码如下: <div id="myid" onclick="show(this);">text</div> <script type="text/javascript"> function show(ob

JavaScript代码编写中各种各样的坑和填坑方法_javascript技巧

坑"这个字,在此的意思是"陷阱".由于 JavaScript "弱语言"的性质,使得其在使用过程中异常的宽松灵活,但也极为容易"中招".这些坑往往隐藏着,所以必须擦亮双眼,才能在学习与应用 JS 的道路上走的一帆风顺. 一.全局变量 JavaScript 通过函数管理作用域.在函数内部声明的变量只在这个函数内部,函数外面不可用.另一方面,全局变量就是在任何函数外面声明的或是未声明直接简单使用的. "未声明直接简单使用"

Javascript技术栈中的四种依赖注入详解_javascript技巧

作为面向对象编程中实现控制反转(Inversion of Control,下文称IoC)最常见的技术手段之一,依赖注入(Dependency Injection,下文称DI)可谓在OOP编程中大行其道经久不衰.比如在J2EE中,就有大名鼎鼎的执牛耳者Spring.Javascript社区中自然也不乏一些积极的尝试,广为人知的AngularJS很大程度上就是基于DI实现的.遗憾的是,作为一款缺少反射机制.不支持Annotation语法的动态语言,Javascript长期以来都没有属于自己的Spri

在JavaScript中调用Java类和接口的方法_javascript技巧

前言 本文中所有的代码使用 JavaScript 编写,但你也可以用其他兼容 JSR 223 的脚本语言.这些例子可作为脚本文件也可以在交互式 Shell 中一次运行一个语句的方式来运行.在 JavaScript 中访问对象的属性和方法的语法与 Java 语言相同. 本文包含如下几部分: 1.访问 Java 类 为了在 JavaScript 中访问原生类型或者引用 Java 类型,可以调用 Java.type() 函数,该函数根据传入的完整类名返回对应对象的类型.下面代码显示如何获取不同的对象类