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

她的名字有个张

她的名字有个张

2016-02-19 10:27

有了下面这个使用TextRange获取输入框中光标的位置的代码教程,不懂使用TextRange获取输入框中光标的位置的代码的也能装懂了,赶紧get起来装逼一下吧!
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。不过这个副作用基本不会给我们使用文本框带来什么大的问题,所以基本不用太在意。
展开更多 50%)
分享

猜你喜欢

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

Web开发
使用TextRange获取输入框中光标的位置的代码

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

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

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

文本框中光标位置的获得

编程语言 网络编程
文本框中光标位置的获得

网页设计关于表单输入框的技巧代码

Web开发
网页设计关于表单输入框的技巧代码

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

网页设计关于表单输入框技巧代码

Web开发
网页设计关于表单输入框技巧代码

关于搜索输入框

Web开发
关于搜索输入框

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

SQL 注入式攻击的本质

SQL 注入式攻击的本质

JAVA (Jsp)利用Google的Translate开发API的代码

JAVA (Jsp)利用Google的Translate开发API的代码
下拉加载更多内容 ↓