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

摩羯独行侠

摩羯独行侠

2016-02-19 12:04

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

IP地址输入框

Web开发
IP地址输入框

lol偷钱流符文搭配推荐

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

jquery 输入框数字限制插件

Web开发
jquery 输入框数字限制插件

使用输入框填写行列值输出矩阵表

编程语言 网络编程
使用输入框填写行列值输出矩阵表

lolAD刺客新符文搭配推荐

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

在同一台机器上运行多个 MySQL 服务

在同一台机器上运行多个 MySQL 服务

MySQL 管理

MySQL 管理
下拉加载更多内容 ↓