html5 编辑API之range对象(二)
来源:互联网 发布:c语言可视化编程软件 编辑:程序博客网 时间:2024/06/05 03:52
cloneRange方法 Range对象的cloneRange方法用于对当前的Range对象进行复制,该方法返回复制的Range对象,该方法使用如下所示:
var rangeClone = rangeObj.cloneRange();
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title></head><body> <script> function cloneRange(){ var rangeObj = document.createRange(); rangeObj.selectNodeContents(document.getElementById("p")); var rangeClone = rangeObj.cloneRange(); alert(rangeClone.toString()); } </script> <p id="p">这是随便书写的内容</p> <button onclick="cloneRange()">克隆</button></body></html>
cloneContents方法 该方法用于在页面上追加一段HTML代码,并且将Range对象所代表区域中的HTML代码克隆到被追加的html代码中;
使用方法如下所示:
var html = rangeObj.cloneContents();
该方法不使用任何参数,该方法返回一个DocumentFragment对象,该对象为一个容器元素,当需要追加,删除,修改或查找页面上的元素,该对象变得非常有用;
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title></head><body> <script> function cloneContent(){ var p = document.getElementById("p"); var rangeObj = document.createRange(); rangeObj.selectNodeContents(p); var doClone = rangeObj.cloneContents(); p.appendChild(doClone); } </script> <div id="p"> <p>这是要被克隆的内容</p> </div> <button onclick="cloneContent()">克隆</button></body></html>
extractContents方法 用于将Range对象所代表区域中的html代码克隆到一个DocumentFragment对象中,然后从页面中删除这段HTML代码;
该方法使用方式如下:
var documentFragment = rangeObj.extractContents();
该方法返回一个包含了Range对象所代表区域中的HTML代码的DocumentFragment对象。
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title></head><body> <script> function moveContent() { var srcDiv = document.getElementById("srcDiv"); var destDiv = document.getElementById("destDiv"); var rangeObj = document.createRange(); rangeObj.selectNodeContents(srcDiv); var documentFragment = rangeObj.extractContents(); destDiv.appendChild(documentFragment); } </script> <div id="srcDiv" style="width:300px;height:50px;background-color:red;">demo</div> <div id="destDiv" style="width:300px;height:50px;background:blue;">demo2</div> <button onclick = "moveContent()">移动元素内容</button></body></html>
insertNode方法: 该方法用于将指定的节点插入到某个Range对象所代表的区域中,插入位置为Range对象所代表区域的起点位置,如果该节点已经存在于页面中,该节点将被移动到Range对象代表的区域的起点处。使用方法如下:
rangeObj.insertNode(node);
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title></head><body> <script> function MoveButton() { var button = document.getElementById("button"); var selection = document.getSelection(); if(selection.rangeCount > 0) { var range = selection.getRangeAt(0); range.insertNode(button); } } </script> <div onmouseup="MoveButton()" style="width:400px;height:100px;background-color:red">aaaaaaaaabbbbbb</div> <button id="button">按钮</button></body></html>
compareBoundaryPoints(how, sourceRange)方法
- Range.START_TO_START - 比较两个 Range 节点的开始点
- Range.END_TO_END - 比较两个 Range 节点的结束点
- Range.STARTTO_END - 用 _sourceRange 的开始点与当前范围的结束点比较
- Range.ENDTO_START - 用 _sourceRange 的结束点与当前范围的开始点比较
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title></head><body> <script> function testPlace() { var boldText = document.getElementById("boldTest"); var boldRange = document.createRange(); boldRange.selectNodeContents(boldText.firstChild); var selection = document.getSelection(); if(selection.rangeCount>0){ var selRange = selection.getRangeAt(0); if(selRange.compareBoundaryPoints(Range.START_TO_END,boldRange)<0){ alert("选取的文字在粗体前面"); }else{ if(selRange.compareBoundaryPoints(Range.END_TO_START,boldRange)>0){ alert("选取的文字在粗体后面"); } } } } </script> 这是一段文字,我也不<b id="boldTest">知道</b>写写什么。随便吧。 <br> <button onclick="testPlace()">位置比较</button></body></html>
collapse()方法是范围的边界点重合。
collapse(toStart)
参数toStart设置为true,该方法将把范围的结束点设置为与开始点相同的值。否则,它将把范围的开始的设置为与结束点相同的值。
detach方法,释放点Range对象。
- html5 编辑API之range对象(二)
- HTML5 页面编辑API之Range对象二
- HTML5 页面编辑API之Range对象
- HTML5 编辑 API 之 Range 对象
- HTML5学习笔记9-编辑API之Range对象(二)
- HTML5 编辑 API 之 Range 对象(一)
- html5 编辑API之range对象(一)
- HTML5学习笔记8-编辑API之Range对象(一)
- WEB前端之HTML5[6]~HTML5编辑API之Range对象
- h5编辑API之Range对象
- h5编辑API-Range对象
- HTML5之Range对象
- html5之Range对象详解
- HTML5——Range对象(1)
- HTML5——Range对象(2)
- html5 Selection,Range对象
- PostGIS之路——几何对象编辑(二)
- HTML5中的Range对象的研究
- malloc函数详解
- 类的多态
- 闲来无事写一个propertiesUtile工具类
- 各种容器与服务器的区别与联系:Servlet容器 WEB容器 Java EE容器 应用服务器 WEB服务器 Java EE服务器
- 知识库 tomcat-A Simple Web Server static
- html5 编辑API之range对象(二)
- Spark MLlib特征处理:MinMax最大最小值区间缩放---原理及实战
- 文本框限制输入类型的相关代码设置
- uc/os-II 分析(9)---消息邮箱
- 浦发网上银行
- 分布式系列——分布系统的一些技术
- git merge和git rebase的区别
- 汉洛塔递归实现的思考(C语言)
- VB中的传值和传址,形式参数与实际参数