WEB前端之HTML5[6]~HTML5编辑API之Range对象
来源:互联网 发布:网络项目实施方案 编辑:程序博客网 时间:2024/05/16 10:44
- HTML5编辑API之Range对象
- Range对象的基本概念
- selectNode
- selectNodeContents
- deleteContents方法
- setStartsetEnd
- setSeartBeforesetStartAfter
- setEndBeforesetEndAfter
HTML5编辑API之Range对象
Range对象的基本概念
一个Range对象代表页面上的 一段连续区域。通过Range对象,可以获取或修改网页上的任何区域。
<!--示例代码--><script> function rangeTest() { //用来显示提示信息 var html; //获取到显示range对象的DIV var showRangeDiv = document.getElementById("showRange"); //获取selection var selection = document.getSelection(); //selection 的 rangeCount属性用来获取选中的区域 //判断如果区域>0 if (selection.rangeCount > 0) { html = "您选取了>" + selection.rangeCount + "<内容<br>"; <!--有的浏览器获取的不仅仅是一段内容--> for (var i = 0; i < selection.rangeCount; i++) { //传递一个参数,代表range对象的序号,也就是我们选中的区域有几个。 // 在chrome浏览器和苹果浏览器中,用户在一段内容中只能选取一段区域。Firefox可以选取多段 var range = selection.getRangeAt(i); html += "第" + (i + 1) + "段内容为:" + range+"<br>"; } //把提示信息设置为showRange的内容 showRangeDiv.innerHTML = html; } }</script>1.Selection对象与Range对象的使用<input type="button" value="Click Me" onclick="rangeTest()"><div id="showRange"></div>
Chrome运行结果图:
Firefox运行结果图:
selectNode
Range对象的selectNode方法用于将Range对象的起点指定为某个节点的起点,将Range对象的终点指定为 该节点的终点,使Range对象所代表的区域中包含该节点,该方法并不将该节点设置为高亮选取状态,如果想要设置一个选取的节点,还需要使用selection对象的AndRange方法
selectNodeContents
Range对象的selectNodeContents方法,将用于Range对象的起点指定为某个节点中的所有内容的起点,将Range对象的终点指定为该节点中所有内容的终点,使Range对象所代表的区域中包含该节点中的所有内容。
deleteContents方法
Range对象的deleteContents方法用于将Range对象所包含的内容从页面中删除。
<!--示例代码--><script> function deleteRangeContent(onlyContent) { //获取DIV var div = document.getElementById("divId"); //创建Range对象 var rangeObj = document.createRange(); if(onlyContent){ //获取节点的内容 rangeObj.selectNodeContents(div); //删除节点的内容 rangeObj.deleteContents(); }else{ //获取节点 rangeObj.selectNode(div); //删除节点 rangeObj.deleteContents(); } }</script><div id="divId" style="background-color: #f99002 ;width: 300px; height: 50px;"> 元素中的内容</div><button onclick="deleteRangeContent(true)">删除内容</button><button onclick="deleteRangeContent(false)">删除元素</button>
运行结果图:
setStart/setEnd
Range对象的setStart方法用于将某个节点中的某处位置指定为Range对象所代表区域的起点位置。使用方法是通过Range对象来调用方法,传入两个参数。
Range对象的setEnd方法是用于将某个节点中的某处位置指定为Range对象所代表区域的结束位置,使用方法与setStart方法相对应。
<!--示例代码--><script> function deleteTxt() { //获取div元素 var div = document.getElementById("myDiv"); //获取需要删除的内容 var txtNode = div.firstChild; //创建一个Range对象 var rangeObj = document.createRange(); //设置Range对象的开始位置. rangeObj.setStart(txtNode,1); //参数1:需要操作的内容。参数2:开始的位置。 //设置Range对象结束的位置 rangeObj.setEnd(txtNode,3); //同上 //删除 rangeObj.deleteContents(); }</script><div id="myDiv"> This is Content...</div><button onclick="deleteTxt()">删除文字</button>
运行结果图:<不知什么问题,要多点几次才有效果..>
setSeartBefore/setStartAfter
Range对象的setStartBefore方法用于将某个节点的起点设置为Range对象所代表区域的起点位置。
setStartAfter方法用于将某个节点的终点位置设置为Range对象所代表区域的起点位置。
setEndBefore/setEndAfter
setEndBefore方法用于将某个节点的起点位置设置为Range对象所代表区域的终点位置。
setEndAfter方法用于将某个节点的终点位置设置为Range对象所代表区域的终点位置。
<!--示例代码--><script> function deleteRow() { //获取table元素 var table = document.getElementById("myTable"); //判断表格的行数是不是大于0,如果大于0,则删除 if (table.rows.length > 0) { //获取第一行 var row = table.rows[0]; //创建Range对象 var rangeObj = document.createRange(); //设置起点位置为row元素的起点位置 rangeObj.setStartBefore(row); //设置终点位置为row元素的终点位置 rangeObj.setEndAfter(row); //删除元素 rangeObj.deleteContents(); } }</script><table id="myTable" border="1" cellpadding="10" cellspacing="0"> <tr> <td>内容1</td> <td>内容2</td> </tr> <tr> <td>内容3</td> <td>内容4</td> </tr></table><button onclick="deleteRow()">删除第一行</button>
运行结果图:
http://www.2345cms.com
【未完,待续】
- WEB前端之HTML5[6]~HTML5编辑API之Range对象
- HTML5 页面编辑API之Range对象
- HTML5 编辑 API 之 Range 对象
- HTML5 页面编辑API之Range对象二
- HTML5 编辑 API 之 Range 对象(一)
- html5 编辑API之range对象(一)
- html5 编辑API之range对象(二)
- HTML5之Range对象
- HTML5学习笔记8-编辑API之Range对象(一)
- HTML5学习笔记9-编辑API之Range对象(二)
- html5之Range对象详解
- h5编辑API之Range对象
- Web前端HTML5开发入门之HTML
- WEB前端之HTML5~HTML5与HTML4的区别
- WEB前端之HTML5[2]~HTML5新增的元素
- WEB前端之HTML5[5]~HTML5增强的页面元素
- HTML5之Geolocation API
- html5 Selection,Range对象
- [bsoj3135] 慢跑问题
- python核心编程(四)— python对象
- Android如何获取子控件位置坐标
- getActionBar为null问题
- hackinglab.cn脚本关之三
- WEB前端之HTML5[6]~HTML5编辑API之Range对象
- 使用pngquant内核,便捷压缩整体项目png图片脚本
- XUtils
- 定义接口与回调用法
- 最大子数组问题的递归和非递归(线性时间)代码
- Play1.2.7 完整打包,超级缩短完整打包所耗费的时间
- 怎么把Android Studio的项目转成eclipse可用
- ubunut修改用户名
- js中点击事件可能产生的闭包