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

2016-02-19 10:27 11 1 收藏

有了下面这个使用TextRange获取输入框中光标的位置的代码教程,不懂使用TextRange获取输入框中光标的位置的代码的也能装懂了,赶紧get起来装逼一下吧!

【 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/1594675.html

延伸阅读
    在网上我们常常看见一些单的输入框部分并不是我们常见的矩形框,而是一条细线,很多朋友对此很感兴趣。其实要实现这样的效果并不困难,我们只要用一段简短的CSS代码控制好表单输入框的样式即可。   示例如下:   请输入您的用户名: 下面我们就来看看这段实现效果的css代...
import javax.swing.*; public class Lesson23 { public static void main ( String [] args ) { int SHI; // 循环检测程序 ! do { //输入框检测程序 ! System.out.println( "" ); System.out.println( "" ); String Hang = JOptionPane.showInputDialog( " 请输入图形的行数 : " ); int x = Integer.parseInt(...
标签: 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开发
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...

经验教程

689

收藏

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