使用TextRange获取输入框中光标的位

2016-02-19 12:04 5 1 收藏

关注图老师设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享使用TextRange获取输入框中光标的位教程,希望对大家能有一点小小的帮助。

【 tulaoshi.com - Web开发 】

TextRange是用来表现HTML元素中文字的对象,虽然我们平时不太常用这个对象,可是它却在IE4.0中就已提供了。不过TextRange提供的调用方法却都比较晦涩,那么我们能拿它做些什么呢? 

    TextRange的传统用途是对用户在Web页上用鼠标圈选的文字内容的操作,比如变化、删除、新增等。但其经典的用途却是,在Web页面中查找文字(这个比较简单)和获取输入框光标的位置。其中后者又有可以衍生出很多更有用的用途,比如:限制输入的MaskTextBox,其核心技术点就是获取输入框的光标位置,然后使用正则表达式判断输入内容。还有我后面会介绍的"使用方向键在输入框矩阵中自然的导航",核心技术点也是获取输入框中的光标位置。 

    获取输入框中的光标位置的整个代码其实很短,只是这些对象和方法不太常用而已。 
script language="javascript" 
function GetCursorPsn(txb) 

    var slct = document.selection; 
    var rng = slct.createRange(); 
    txb.select(); 
    rng.setEndPoint("StartToStart", slct.createRange()); 
    var psn = rng.text.length; 
    rng.collapse(false); 
    rng.select(); 
    return psn; 

/script 

    要彻底的弄清楚TextRange的具体用法,需要了解与其相关的一些内容,请参考MSDN。
    这里说一下使用这个GetCursorPsn()方法后,会给输入框操作带来的副作用。对于输入框input type="text" onkeydown="GetCursorPsn(this)",它将不能再使用Shift+左右这两个方向键来选择文本;对于textarea onkeydown="GetCursorPsn(this)"/textarea,将不能再使用Shift+上下左右四个方向键来选择文本。因为代码在获取了当前光标到文本的startPoint后,调用rng.collapse(false);会改变文本筐内文本的EditPoint。不过这个副作用基本不会给我们使用文本框带来什么大的问题,所以基本不用太在意。

来源:http://www.tulaoshi.com/n/20160219/1599702.html

延伸阅读
标签: Web开发
//* *// [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
标签: Web开发
这个例子主要学习两个参数onblur和onFocus.因为这两个参数以前很少遇到,baidu 一下明白了,onblur 是控件在失去焦点的时候触发的事件,而onFocus就是成为输入焦点的时候触发的事件,这两个参数都可以和className结合直接调用样式表类名 !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose....
标签: Web开发
1.取消按钮按下时的虚线框 在input里添加属性值hideFocus或者HideFocus=true 2.只读文本框内容 在input里添加属性值readonly 3.防止退后清空的TEXT文档(可把style内容做做为类引用) INPUTstyle=behavior:url(#default#savehistory);type=textid=oPersistInput 4.ENTER键可以让光标移到下...
标签: Web开发
js对输入框的字数限制,限制文本框输入的字符数,若达到数目则停止其输入!代码如下: 01. !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" 02.html xmlns="http://www.w3.org/1999/xhtml" 03.head 04.meta http-equiv="C...
  可以用Javascript对文本框进行检查,过滤掉非0-9的字符。    <script language=" javascript " event="onkeydown" for="document"         if(event.srcElement.name=='TextBox1')         {         &...

经验教程

842

收藏

77
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部