JavaScript DOM学习第九章:选取范围的介绍
2010-03-30 00:00:00 来源:WEB开发网var selectedText = userSelection;
if (userSelection.text)
selectedText = userSelection.text;
现在selectedText就包含了用户选择的文本。如果你觉得这样的信息足够的话,那么就开始准备后面的工作吧。
从选择对象创建范围对象
很多时候,你想处理的是代表用户选择范围的范围对象(range object)。在微软模式中条件已经具备:userSelection就是一个文本范围。在兼容W3C的浏览器中userSelection依然只是一个选择对象,是时候创建一个与选择对象内容相同的范围对象了。
按照下面这样:
01 var rangeObject = getRangeObject(userSelection);
02
03 function getRangeObject(selectionObject) {
04 if (selectionObject.getRangeAt)
05 return selectionObject.getRangeAt(0);
06 else { // Safari!
07 var range = document.createRange();
08 range.setStart(selectionObject.anchorNode,selectionObject.anchorOffset);
09 range.setEnd(selectionObject.focusNode,selectionObject.focusOffset);
10 return range;
11 }
12 }
理想情况下,我们通过选择对象的getRangeAt()来访问W3C范围对象。这个方法会在给定的位置返回一个范围对象:就像平常一样第一个范围对象的编号是0。(getRangeAt()已经设计好如果有多处选择的情况下怎么办。在那种情况下你的代码也很简单)
自从创建一个范围
不幸的是Safari1.3不支持getRangeAt()。因此我们需要创建一个跟用户选择一样的范围对象。这是一个很好的练习机会,可以让你知道如何创建自己的范围对象。
编缉推荐阅读以下文章
- JavaScript DOM学习第八章:表单错误提示
- JavaScript DOM学习第七章:表单的扩展
- JavaScript DOM学习第六章:表单实例
- JavaScript DOM学习第五章:表单简介
- JavaScript DOM学习第四章:getElementByTagNames
- JavaScript DOM学习第三章:内容表格
- JavaScript DOM学习第二章:编辑文本
- JavaScript DOM学习第一章:W3C DOM简介
- javaScript DOM方法与属性摘要
Tags:JavaScript DOM 学习
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接