h5编辑API-Range对象
来源:互联网 发布:video node 编辑:程序博客网 时间:2024/06/05 06:17
cloneRange/cloneContents/extractContents方法
cloneRange用于当前Range对象进行复制,该方法返回当前Range的对象
<p id="p">这是啥东西</p><button onclick="xx()">克隆</button><script>function xx(){var rangeObj = document.createRange(); //创建Range对象rangeObj.selectNodeContents(document.getElementById("p"));var rangeClone = rangeObj.cloneRange();alert(rangeClone.toString());//获取克隆对象并且显示}</script>
cloneContents方法用于在页面上追加一段html代码,并且将Range对象所代表的区域中的html代码克隆到追加到html代码之后。
<div id="div">鞋子<br /><button onclick="xx()">克隆内容</button></div><script>function xx(){var div = document.getElementById("div");var rangeObj = document.createRange();rangeObj.selectNodeContents(div);//获取当前内容var docfrangment = rangeObj.cloneContents();//克隆div.appendChild(docfrangment);//追加}</script>
extractContents方法用于Range对象所代表的区域中html代码克隆到document对象中
<div id="src" style="background-color: blueviolet; width: 300px; height: 50px;">移动到其他div</div><div id="dis" style="background-color: coral; width: 300px; height: 50px;"></div><button onclick="xx()">移动元素</button><script>function xx(){var src = document.getElementById("src");var dis = document.getElementById("dis");var rangeObj = document.createRange();rangeObj.selectNodeContents(src);//获取第一个div中内容var doc = rangeObj.extractContents();dis.appendChild(doc);}</script>
insertNode/compareBoundaryPoints方法
insertNode方法用于指定节点插入到某个Range对象所代表的区域中,插入位置为Range对象所代表区域的起点位置,如果该点在页面中已存在,那么该节点被移动到Range对象所代表区域的起点处。
<div onmouseup="x1()" style="width: 400px; background-color: aquamarine;"><!--指定一个鼠标按下事件-->啥东西啊这都是</div><button id="button">按钮</button><script>function x1(){var btn = document.getElementById("button");var selection = document.getSelection();if(selection.rangeCount>0){var range = selection.getRangeAt(0);range.insertNode(btn);}}</script>
compareBoundaryPoints方法用于比较两个Range对象的起点位置或终点位置
这个<b id="boldtest">世界</b>那么大,都应该去看看。我还有好多事情没有尝试,好多风景没有去看,好多路没有去走。我还没有完成好多的愿望,还么有陪他们老去,没有带她到处走走,没有很大气的一拍桌子的说走就走。<br /><button onclick="hehe()">位置比较</button><script>function hehe(){var boldext = document.getElementById("boldtest");//获取加粗文字id var boldrange = document.createRange(); boldrange.selectNodeContents(boldext.firstChild); var selection = document.getSelection(); if(selection.rangeCount>0){ var selrange = selection.getRangeAt(0); if(selrange.compareBoundaryPoints(Range.START_TO_END,boldrange)<=0){//小于等于0代表目前没有到我们文字加粗的位置 alert("选中粗体前文字"); }else{ if(selrange.compareBoundaryPoints(Range.END_TO_START,boldrange)>=0){ alert("选中粗体后文字"); } } }}</script>
collapse/detach方法
collapse方法用于Range对象所代表区域的终点移动到该区域的起点,或者起点移动到终点处。
<div id="div" style="background-color: crimson; width: 300px; height: 50px;">元素</div><button onclick="x1()">选择元素</button><button onclick="x2()">取消元素</button><button onclick="x3()">显示Range内容</button><script>var rangeobj = document.createRange();function x1(){var div = document.getElementById("div");rangeobj.selectNode(div);}function x2(){rangeobj.collapse(false);}function x3(){alert(rangeobj.toString());}</script>
detach方法用于浏览器中释放Range对象,释放后将不能再次访问Range对象,否则跑出错误
如下所示为上面代码点击事件x1中释放Range对象,则x2、x3事件不能获取Range对象
function x1(){var div = document.getElementById("div");rangeobj.selectNode(div);rangeobj.detach();}
阅读全文
0 0
- h5编辑API-Range对象
- h5编辑API之Range对象
- HTML5 页面编辑API之Range对象
- HTML5 编辑 API 之 Range 对象
- HTML5 页面编辑API之Range对象二
- HTML5 编辑 API 之 Range 对象(一)
- html5 编辑API之range对象(一)
- html5 编辑API之range对象(二)
- WEB前端之HTML5[6]~HTML5编辑API之Range对象
- HTML5学习笔记8-编辑API之Range对象(一)
- HTML5学习笔记9-编辑API之Range对象(二)
- range 对象
- Range对象
- h5 range应用 透明度+RGB
- h5 form api 表单API
- H5定位地理位置API
- H5 Canvas JS API
- h5 selectors api
- CSS Mastery摘要(3)--Web Typography
- HDOJ2057
- ADC 差分输入与单端输入的区别
- Jzoj3902 游戏
- 剑指Offer------二叉树的镜像
- h5编辑API-Range对象
- 2017.10.3Reflection
- bzoj1411: [ZJOI2009]硬币游戏
- 10.2 10.3NOIP模拟赛总结
- JDK动态代理和CGLib代理
- 为什么使用setFrame无效?
- water
- 刺激的矩阵exciting
- Unity_DOTween动画的学习(四)_基础演示复习