IE浏览器下javascript中的TextRabge对象解析

TextRange对象是动态HTML(DHTML)的高级特性,使用它可以实现很多和文本有关的任务,例如搜索和选择文本。文本范围让您可以选择性的将字符、单词和句子从文档中挑选出来。TextRange对象是在HTML文档将要显示的文本流上建立开始和结束位置的抽象对象。

下面是TextRange的常用属性与方法:

属性
boundingHeight       获取绑定TextRange对象的矩形的高度
boundingLeft           获取绑定TextRange 对象的矩形左边缘和包含TextRange对象的左侧之间的距离
offsetLeft                 获取对象相对于版面或由offsetParent属性指定的父坐标的计算左侧位置
offsetTop                 获取对象相对于版面或由offsetParent属性指定的父坐标的计算顶端位置
htmlText                  获取绑定TextRange对象的矩形的宽度
text                         设置或获取范围内包含的文本

方法
moveStart              更改范围的开始位置
moveEnd               更改范围的结束位置
collapse                将插入点移动到当前范围的开始或结尾
move                     折叠给定文本范围并将空范围移动给定单元数
execCommand      在当前文档、当前选中区或给定范围上执行命令
select                    将当前选择区置为当前对象
findText                在文本中搜索文本并将范围的开始和结束点设置为包围搜索字符串。

使用TextRange对象通常包括三个基本的步骤:

1.创建文本范围
2.设置开始点和结束点
3.对范围进行操作

<!DOCTYPE html>
<html>
<head>
     <meta charset="UTF-8">
     <title>选择文本</title>
     <script type="text/javascript" >
	window.onload = function(){
	        var textbox = document.forms[0].elements[0];
	        var range = textbox.createTextRange();
		//选择所有文本
		range.collapse(true);
		range.moveStart("character",0);
		range.moveEnd("character",textbox.value.length);  // hello world
			
		//选择前3个字符
		range.collapse(true);
		range.moveStart("character",0);
		range.moveEnd("character",3);  // hel
	}	
    </script>
</head>
<body>
     <form>
	    <input type="text" name="文本框" value="hello world"  />
     </form>	
</body>
</html>

一些方法的简单介绍
1.createTextRange()

创建一个TextRange对象,BODY、TEXT、TextArea、BUTTON等元素都支持这个方法。该方法返回一个TextRange对象。

2.moveStart("Unit"[,startcount]) 和  moveEnd("Unit"[,endcount]) 结合使用

方法的第一个参数是字符串,它指定的单位有character(字符)、word(词)、sentence(段落)、textedit。textedit值将插入点移动到整个文本范围的结束处(不需要参数)。如果指定为前三种单位,忽略参数时默认值为1,也可以指定一个整数值来指示单元数,正数代表向前移动,负数代表向后移动。第二个参数表示开始的位置


3.select()
select()方法选择当前文本范围内的文本,这里的显示光标也必须利用它来实现,因为所谓的"光标"可以理解为边界重合的范围
4.collapse([Boolean])

可以用collapse()方法把文本范围从当前尺寸重叠成字符间的单个插入点。collapse()方法的可选参数是Boolean值,它指出范围是在当前范围的开始点重合,还是结束点重合。默认值为true,在开始点重合:

5.findText("searchString"[,searchScope,flags])

TextRange对象最有用的方法之一是findText()方法,其默认行为是从开始点到结束点浏览文本范围,搜索一个不区分大小写的字符串匹配。如果在范围中发现一个实例,范围的开始点和结束点就放到这个文本中,方法返回true;否则返回false,开始点和结束点都不动。方法仅搜索显示文本,而任何标记或属性都不会被搜索。

可选参数searchScope是一个整数值,它指示从开始点的字符数,值越大,包含在搜索范围的文本越多;负值将迫使搜索操作从当前开始点向后搜索。

可选参数flag用来设置搜索是否区分大小写,或者是否仅匹配整个单词。参数是整数值,它用按位组合的数学方法计算单个值,这些值能容纳一个或多个设置。匹配整个单词的值为2;匹配大小写的值为4;如果只想匹配一项,则只提供希望的值就够了,但对于两种行为,要用位操作XOR操作符(^操作符)使值为6。

findText()方法最常用的应用包括范围中的查找和替换操作,以及格式化一个字符串的实例,因为搜索通常以范围的当前开始点开始,所以再次查询要将开始点移到范围中匹配文本的末尾(如示例3),移动后才能使findText()继续浏览剩下的文本范围,来查找另一个匹配。可以使用collapse(false)方法迫使开始点移动第一个匹配的范围的结束点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值