1:什么是Range对象Range是指html文档中的区域,比如用户用鼠标拖动选中的区域,如下图:通过Range对象,可以获取用户选中的区域,也可以指定选中的区域Area,获取Range的起点和终点,修改或复制里面的文字,甚至html。在富文本编辑器的开发中,经常会用到这些功能。二:获取当前选择区域由于兼容性问题,需要区分ie浏览器,var选择,范围;if(window.getSelection){//现代浏览器selection=window.getSelection();}elseif(document.selection){//IEselection=document.selection.createRange();}//范围对象range=selection.获取范围(0);三:range属性>collapsed如果range的起点和终点在文档中的同一位置,则为true,即range为空,即collapsed。>嵌套最深的Document节点位于commonAncestorContainer范围的开始和结束处(即它们的祖先节点)。>endContainer包含范围终点的文档节点。>endOffsetendContainer中的终点位置。>startContainer包含范围起点的文档节点。>startOffsetstartContainer中的起点位置。四:范围操作//选中区域的文本vartext=range.toString();//选中区域的元素元素varelem=range.commonAncestorContainer;if(elem.nodeType!=1){elem=elem.parentNode;}//选中区域的htmlvarspan=document.createElement('SPAN');span.appendChild(range.cloneContents());//是否为空varisSelectionEmpty=false;if(range.startContainer===range.endContainer){if(range.startOffset===range.endOffset){isSelectionEmpty=true;}}
