WEB开发网
开发学院网页设计JavaScript javascript之DOM技术(二) 阅读

javascript之DOM技术(二)

 2010-09-14 13:06:48 来源:WEB开发网   
核心提示: (4)复杂选区通过setStart和setEnd来实现复杂选区,两个方法都接受两个参数:节点引用和偏移量,javascript之DOM技术(二)(5),(5)与范围对象的交互<1>deleteContents(),删除范围内容<2>extractContents,与

(4)复杂选区

通过setStart和setEnd来实现复杂选区,两个方法都接受两个参数:节点引用和偏移量。

(5)与范围对象的交互

<1>deleteContents(),删除范围内容

<2>extractContents,与deleteContents()相似,只不过返回被删除的文档碎片

<3>cloneContents(),创建范围内容副本

<4>surroundContents(node),插入包围范围的内容

<5>insertNode(node),在选区开头插入节点

<6>cloneRange(),复制范围

<7>detach(),释放系统资源

<8>compareBoundaryPoints()方法,比较范围,两个参数,一个比较规则(Range.START_START,Range.START_TO_END,Range.END_TO_START,Range.END_TO_END),一个是比较的范围引用

2.IE中的范围

IE的范围并不标准,主要用来处理文本节点,调用<body/>,<button/>,<input/>,<textarea>节点的createTextRange方法来创建范围,建议用document.body.createTextRange()来创建,因为其他元素创建的范围仅能用于它们内部。

(1)简单选区:

同样以下面这段代码为例子:

<p id="p1"><b>hello</b>world</p>

要选择hello,可以使用:

var oRange=document.body.createTextRange();

oRange.findText("hello");

findText方法还可以接受第2个参数,如oRange.findText("hello",1);将选择hello之后再次找到的hello文本节点。

与DOM中的selectNode方法最相似的是IE的moveToElementText()方法,比如我们要选中p1节点以及它的所有子节点:

var oRange=document.body.createTextRange();

var oP1=document.getElementById("p1');

oRange.moveToElementText(oP1);

alert(oP1.htmlText);

另外,oRange.parentElement()返回选区的父节点。

(2)复杂选区:

move(),moveStart(),moveEnd(),expand()方法实现复杂选区,这些方法都接受两个参数:移动的单位("character","word","sentence","textedit")和移动的单位的个数。

(3)与范围交互

<1>text属性,比如oRange.text="hello";

<2>pasteHTML(),插入HTMl代码,比如oRange.pasteHTML("<em>test</em>");

<3>duplicate(),复制范围

<4>compareEndPoints() 方法,比较范围,第一个参数也是比较规则("StartToStart","StartToEnd,EndToStart","EndToEnd")和比较的范围引用。也可以通过isEqual()和isRange()方法来比较。

3.范围的常见应用,比如搜索引擎中,搜索出来的链接中的关键字用特别的颜色包围起来,另外就是网页广告比较常用。

来源:http://www.blogjava.net/killme2008/archive/2007/02/10/99135.html

上一页  1 2 3 4 5 

Tags:javascript DOM 技术

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接