一:什么是Range对象

Range是指html文档中的区域,如用户用鼠标拖动选中的区域,如下图:

通过Range对象,可以获取用户选中的区域,或者指定选中区域,得到Range的起点和终点、修改或者复制里边的文本,甚至是html。在富文本编辑器开发中,经常会使用到这些功能。

二:获取当前的选区

由于兼容性的问题,需要区分ie浏览器,

var selection, range;
if (window.getSelection) { //现代浏览器selection = window.getSelection();
} else if (document.selection) { //IEselection = document.selection.createRange();
}//Range对象
range = selection.getRangeAt(0);

三:range属性

> collapsed     如果范围的开始点和结束点在文档的同一位置,则为 true,即范围是空的,或折叠的。
> commonAncestorContainer     范围的开始点和结束点的(即它们的祖先节点)、嵌套最深的 Document 节点。
> endContainer         包含范围的结束点的 Document 节点。
> endOffset     endContainer 中的结束点位置。
> startContainer     包含范围的开始点的 Document 节点。
> startOffset    startContainer中的开始点位置。

四:range操作

//选中区域的文字
var text = range.toString();//选中区域的Element元素
var elem = range.commonAncestorContainer;
if(elem.nodeType != 1){elem = elem.parentNode;
}//选中区域的html
var span = document.createElement('SPAN');
span.appendChild(range.cloneContents());//选区是否为空
var isSelectionEmpty = false;
if (range.startContainer === range.endContainer) {if (range.startOffset === range.endOffset) {isSelectionEmpty = true;}
}

JS Range 对象的使用相关推荐

  1. js range 对象研究

    range对象  光标对象 他有4个常用属性 startContainer startoffset endContainer endoffset 举个例子 range :  span 1  div   ...

  2. javascript range 转为 html,javascript Range对象跨浏览器常用操作

    开发的功能主要涉及即时代码着色(CodeColoring)和语法提示(CodeHints)功能,稍后会总结功能开发中问题或提供源码. 以下是个人对Range对象的了解和常用操作的实例和总结: Rang ...

  3. js空对象undefined

    <!DOCTYPE html> <html><head><meta charset="UTF-8"><title>js空 ...

  4. js空对象undefined测试

    代码示例: <!DOCTYPE html> <html><head><meta charset="UTF-8"><title& ...

  5. Node.js 全局对象

    Node.js 全局对象 在浏览器 JavaScript 中,通常 window 是全局对象, 而 Node.js 中的全局对象是 global,所有全局变量(除了 global 本身以外)都是 gl ...

  6. python内置函数可以返回列表元组_Python内置函数()可以返回列表、元组、字典、集合、字符串以及range对象中元素个数....

    Python内置函数()可以返回列表.元组.字典.集合.字符串以及range对象中元素个数. 青岛远洋运输有限公司冷聚吉船长被评为全国十佳海员.()A:错B:对 有源逆变是将直流电逆变成其它频率的交流 ...

  7. web前端学习(二)html学习笔记部分(3)--range对象

    1.2.8  html5编辑api之range对象(一) 1.2.8.1  Range 对象基本概念 Range 对象的基本概念,通过使用 Range 对象所提供的方法实现一个鼠标选取内容,通过点击按 ...

  8. 分支结构||分支循环结构||使用原生js遍历对象

    分支循环结构 分支结构 v-show的原理:控制元素样式是否显示 display:none <!DOCTYPE html> <html lang="en"> ...

  9. 对象的内置属性和js的对象之父Object()

    js中对象有constructor,valueOf(),toString()等内置属性和方法; 创建一个空对象的方法: var o = {}; 或者 var o= new Object(); o.co ...

最新文章

  1. djangoORM数据类型及基本操作
  2. wcf简单的创建和运用
  3. (译)在Objective-c里面使用property教程
  4. ProGuard中keep到底有什么作用
  5. 单片机实现水位控制C语言,单片机课程设计 水位自动控制.doc
  6. axivion和astree_基于LabVIEW的IVI编程 IVI Programme Based on LabVIEW.pdf
  7. 2021全球国际化大学排名出炉,这所中国高校喜提世界第一!
  8. 下载eclipse太慢怎么办?
  9. centOS下mysql主从配置
  10. python 方差_使用NumPy介绍期望值,方差和协方差
  11. Windows 7提示数据错误 循环冗余检查怎么办?
  12. Java 银联云闪付对接记录
  13. code first修改表或字段
  14. 十大前端开发框架(转)
  15. App 打包提交APP Store途中遇到蛋疼的ERROR ITMS-90035
  16. 答读者问(2):有关研究生论文及实习等问题
  17. conda虚拟环境常见操作
  18. 放弃全职工作,出来成为”自由职业者”的利和弊
  19. 如何制定达人营销策略
  20. 2021年,掌握这13个Java核心技术栈,你也能拿30K!

热门文章

  1. .NET chart 毫秒级坐标轴
  2. [django]模板中自定义变量django模板中的变量
  3. OpenCV实时美颜摄像并生成H264视频流
  4. Android Studio no debuggable applications解决方案2
  5. 让你的eclipse插件只下载一次
  6. CSS样式:background-position word-wrap是控制换行的。
  7. 支付宝支付 第五集:二维码生成工具
  8. html页面左对齐 不换行,css如何设置不换行?
  9. url 参数 后台 加密_一套拿来即用的后台管理系统,非常方便(附项目地址)
  10. mysql+翻页性能,mysql 翻页优化