TaoGOGO

欢迎您光临,这就是TaoGOGO的网络小窝!
上网只为等你-爱情»
«url传递中文参数出错误(乱码)的解决方法

替换textarea里的tabindex属性的js(兼容火狐与ie)

<script language="JavaScript">
<!--
var TextAreaTab =
{
   Register : function(obj)
   {
       // 绑定事件
       obj.onclick = new Function('TextAreaTab.CreateInsertPosition(this)');
       obj.onselect = new Function('TextAreaTab.CreateInsertPosition(this)');
       obj.onkeyup = new Function('TextAreaTab.CreateInsertPosition(this)');
       obj.onkeydown = new Function('TextAreaTab.InsertTab(this)');
   },
   // 这个只对ie有用
   // 创建光标所在位置的对象,就是要插入的位置。
   // 其实就是光标选中的对象,对它进行操作就可以了。
   CreateInsertPosition : function(obj)
   {
       if (obj.createTextRange) // IE
       {
           obj.InsertPosition = document.selection.createRange().duplicate(); // 光标选中的对象
       }
   },
   InsertTab : function(obj)
   {
       var evt = this.GetEvent(); // 返回 event 对象
       if (evt.keyCode == 9) // 按下了Tab键
       {
           if (obj.createTextRange && obj.InsertPosition) // IE
           {
               // 赋予对象内容
               obj.InsertPosition.text = '\t';
               evt.returnValue = false;
           }
           else if (window.getSelection) // FF
           {
               var scrollTop = obj.scrollTop; // 滚动的位置
               var start = obj.selectionStart; // 当前光标所在位置

               var pre = obj.value.substr(0, obj.selectionStart); // 光标之前的内容
               var next = obj.value.substr(obj.selectionEnd); // 光标之后的内容
               obj.value = pre + '\t' + next;

               evt.preventDefault();
               // 设置光标在插入点之后的位置
               obj.selectionStart = start + 1;
               obj.selectionEnd = start + 1;
               obj.scrollTop = scrollTop;
           }
       }
   },
   // 返回 event 对象
   GetEvent : function()
   {
       if(document.all) // IE
       {
           return window.event;
       }

       func = this.GetEvent.caller;
       while(func != null)
       {
           var arg0 = func.arguments[0];
           if(arg0)
           {
               if((arg0.constructor == Event || arg0.constructor == MouseEvent)
                   ||(typeof(arg0) == "object" && arg0.preventDefault && arg0.stopPropagation))
               {
                   return arg0;
               }
           }
           func = func.caller;
       }
       return null;
   }
}
//-->
</script>
tabindex="4"
<textarea id="TextArea" rows="10" cols="50"></textarea>
<script language="JavaScript">
<!--
var textarea = document.getElementById('TextArea');
TextAreaTab.Register(textarea); // 注册一下对象,就可以让这个对象现实Tab功能
//-->
</script>

想收藏或者和大家分享这篇好文章→ 分享家:Addthis中国

相关阅读:

Tags: js tabindex 兼容 textarea |Comments:(0)|read:(463)

0 to "替换textarea里的tabindex属性的js(兼容火狐与ie)"

 

Leave a Reply




请输入计算结果:6+2

:) lol 8) mrgreen evil arrow :( more »

Tao公告

一定要努力啊,要做生活的强者!不要懈怠!@2009.12.22

搜索

G Show!