TextRange对象仅仅IE浏览器支持,Chrome和FF都不支持。
利用TextRange对象,我们可以实现一些与文本有关的任务。比如说,定位,查找。
可以利用createTextRange()方法为input、textarea、body等创建TextRange。例如: var tr = document.body.createTextRange();
TextRange主要的方法有:
1、move相关的:moveStart("UNIT"[,count]);moveEnd("UNIT"[,count]);move("UNIT"[,count]);
moveStart();默认开始为TextRange对象的第一个字符
moveEnd();默认开始为TextRange对象的最后一个字符
它们配合起来可以选中特定的区域。
move();可以将光标移动到TextRange的某一位置。
UNIT取值范围为CHARACTER(字符)、WORD(词)、SENTENCE(段落)、textedit。
[,count]可正可负,代表相对于当前位置的偏移量。
2、选择查找相关:
select();选择moveStart();和moveEnd();之间的内容
collapse(boolean b);重叠插入点。true代表从开始处重合,反之则结尾处重合。
findText("search string"[,search scope,flags]);search scope指的是搜索的范围,值越大,范围越大,若值为负,则从反向搜索。flags代表是否大小写敏感。2代表匹配整个单词,4代表大小写敏感。
document.selection只有IE支持,window.getSelection()也只有FireFox和Safari支持,都不是标准语法。selection 对象代表了当前激活选中区,即高亮文本块,或文档中用户可执行某些操作的其它元素。selection 对象的典型用途是作为用户的输入,以便识别正在对文档的哪一部分正在处理,或者作为某一操作的结果输出给用户。
光标定位至起始位置
function locatePoint(){
var aCtrl = document.getElementById("txtContent");
if (aCtrl.setSelectionRange) {
setTimeout(function() {
aCtrl.setSelectionRange(0, 0); //将光标定位在textarea的开头,需要定位到其他位置的请自行修改
aCtrl.focus();
}, 0);
}else if (aCtrl.createTextRange) {
var textArea=document.getElementById("txtContent");
var tempText=textArea.createTextRange();
tempText.moveEnd("character",0-tempText.text.length);
tempText.select();
}
}
这段代码来自:http://www.jb51.net/article/26527.htm
其他相关资料:http://w3help.org/zh-cn/causes/SD9031
http://blog.csdn.net/wayne23/article/details/1248925
http://blog.163.com/wr_asdf/blog/static/42930451200911252735453/
分享到:
相关推荐
需要注意的是,TextRange对象主要适用于IE浏览器,非IE浏览器(如Firefox、Chrome、Safari等)使用的是不同的API(如`Range`对象和`Selection`对象)来处理文本选择和操作。因此,在跨浏览器的JavaScript开发中,...
尽管在现代浏览器中DOM Range对象更常见,但TextRange对象在处理特定的文本操作时仍然有价值,尤其是在兼容旧版IE浏览器的场景下。 TextRange对象提供了一系列的方法,如`select()`用于选取文本,`collapse()`用于...
对于IE8及以下版本,它利用`document.selection`和`TextRange`对象来获取光标位置。 **获取选中起始位置和终止位置**: ```javascript function getSelectionRange(input) { if (input.selectionStart !== ...
在本文中,我们将详细探讨如何在JavaScript中检查选定的对象类型,以及`document.selection`和`document.getSelection()`方法在其中的作用。 首先,我们需要理解在JavaScript中,选区可以是文本(Text)或对象(如...
2. **TextRange对象**:在Internet Explorer中,不支持标准的Range对象,而是使用TextRange对象。`createTextRange()`方法创建TextRange对象,`getBookmark()`和`moveToBookmark(bookmark)`用于保存和恢复Range的...
TextRange是HTML元素中文字的对象,虽然我们平时不太常用这个对象,但它却在IE4.0中就已提供了。TextRange提供的调用方法却都比较晦涩,那么我们能拿它做些什么呢? TextRange的传统用途是对用户在Web页上用鼠标圈选...
对于IE浏览器,由于其不支持`window.getSelection()`,我们采用了`document.selection`对象和`TextRange`技术来实现兼容。通过`document.selection.createRange()`获取当前选中的文本范围,然后将这个范围内的文本...
需要注意的是,上述代码示例是基于旧版浏览器编写的,因为现代浏览器中已经很少使用document.selection对象了,大部分浏览器都支持window.getSelection()方法。但是在一些老旧的浏览器中,比如IE 9以下版本,仍可能...
而在IE中,为了兼容老版本的浏览器,我们需要使用`document.selection.createRange()`来获取TextRange对象。这两个对象虽然都能表示文档的选取范围,但它们的操作方式存在显著差异。 1. **TextRange对象**: - ...
- **`createTextRange()`方法**(IE特有)**:**用于创建一个表示文档中一段文本的`TextRange`对象,并且可以用来移动光标位置或选中文本。 3. **兼容性考虑**: - 不同浏览器对于获取光标位置的支持程度不一,...
在不支持这些属性的情况下,我们还可以通过`document.selection`对象来实现类似的功能,但这仅限于IE浏览器。 接下来,我们来看看JavaScript代码中的实现方法。代码中首先定义了一个`$`函数,它是对`document....
总结一下,通过JavaScript实现复制网页表格的功能,主要涉及到DOM操作、`Range`和`Selection`对象,以及针对不同浏览器的兼容性处理。理解这些核心概念和技术,可以让你在处理类似需求时更加得心应手。在实际应用中...
在Internet Explorer中,`selectionStart`属性不受支持,需要使用`document.selection`和`TextRange`对象来获取选中区域的起点。以下是一个示例方法: ```javascript function getStartPos(textarea) { if (typeof ...
例如,W3C的Range对象在现代浏览器(如Firefox、Safari、Chrome)中得到良好支持,但IE浏览器有自己的TextRange对象,虽然功能相似,但API有所不同。此外,Mozilla Firefox还提供了一些扩展方法,如`...
在早期的IE浏览器中,可以通过`document.selection`对象来实现文本选择。而在现代浏览器中,则可以通过`window.getSelection`和`document.createRange`方法来实现。现代浏览器普遍使用`window.getSelection`方法,它...
在非IE浏览器中,如Chrome、Firefox、Safari等,应使用`Selection`和`Range`对象来实现相同的功能。例如,可以使用`window.getSelection()`和`Range`来替换上面的`TextRange`部分,以实现跨浏览器兼容的光标定位。 ...
此外,对于现代浏览器,可以使用`TextRange`对象的方法来处理选区,而IE中则需要使用`Range`对象。 总之,通过JavaScript,我们可以实现textarea中Tab键的缩进功能,使得在网页上的代码编辑体验更加接近于专业代码...
在IE浏览器中,我们可以使用`document.selection`对象来获取选区,并通过`createRange()`方法创建一个`TextRange`对象,该对象提供了获取选中文本的能力。而在Firefox、Chrome等现代浏览器中,我们则使用`window....