javascript之DOM技术(二)

http://tech.ddvip.com   2008年01月18日    社区交流

本文详细介绍javascript之DOM技术(二)

  (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

责编:豆豆技术应用

正在加载评论...