Range

Baseline 广泛可用 *

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

* 此特性的某些部分可能存在不同级别的支持。

Range 接口表示文档的一部分,可以包含节点和文本节点的部分。

可以使用 Document.createRange() 方法创建 Range。也可以通过 Selection 对象的 getRangeAt() 方法或 Document 对象的 caretRangeFromPoint() 方法来获取 Range 对象。

还有 Range() 构造函数可用。

AbstractRange Range

实例属性

没有继承的属性。

Range.collapsed 只读

返回一个布尔值,指示 Range 的开始和结束点是否在同一位置。

Range.commonAncestorContainer 只读

返回包含 startContainerendContainer 节点的最深层 Node

Range.endContainer 只读

返回 Range 结束所在的 Node

Range.endOffset 只读

返回一个数字,表示 Range 在 endContainer 中的结束位置。

Range.startContainer 只读

返回 Range 开始所在的 Node

Range.startOffset 只读

返回一个数字,表示 Range 在 startContainer 中的开始位置。

构造函数

Range()

返回一个以全局 Document 作为其开始和结束的 Range 对象。

实例方法

没有继承的方法。

Range.collapse()

将 Range 折叠到其边界点之一。

Range.compareBoundaryPoints()

比较 Range 的边界点与另一个 Range。

Range.compareNode() 已弃用 非标准

返回一个常量,表示 Node 在 Range 之前、之后、内部或环绕。

Range.comparePoint()

返回 -1、0 或 1,表示该点在 Range 之前、内部或之后。

Range.cloneContents()

返回一个 DocumentFragment,其中包含 Range 节点的副本。

Range.cloneRange()

返回一个 Range 对象,其边界点与克隆的 Range 相同。

Range.createContextualFragment()

从给定的代码字符串创建并返回一个 DocumentFragment

Range.deleteContents()

Document 中删除 Range 的内容。

Range.detach()

无操作。为了兼容性而保留。

Range.extractContents()

将 Range 的内容从文档树移到 DocumentFragment 中。

Range.getBoundingClientRect()

返回一个 DOMRect 对象,该对象包含 Range 的所有内容;这将是 range.getClientRects() 返回的所有矩形的并集。

Range.getClientRects()

返回一个 DOMRect 对象列表,该列表聚合了 Range 中所有元素的 Element.getClientRects() 的结果。

Range.isPointInRange()

返回一个 boolean 值,指示给定的点是否在 Range 中。

Range.insertNode()

在 Range 的开头插入一个 Node

Range.intersectsNode()

返回一个 boolean 值,指示给定的节点是否与 Range 相交。

Range.selectNode()

将 Range 设置为包含该 Node 及其内容。

Range.selectNodeContents()

将 Range 设置为包含某个 Node 的内容。

Range.setEnd()

设置 Range 的结束位置。

Range.setStart()

设置 Range 的开始位置。

Range.setEndAfter()

相对于另一个 Node 设置 Range 的结束位置。

Range.setEndBefore()

相对于另一个 Node 设置 Range 的结束位置。

Range.setStartAfter()

相对于另一个 Node 设置 Range 的开始位置。

Range.setStartBefore()

相对于另一个 Node 设置 Range 的开始位置。

Range.surroundContents()

将 Range 的内容移动到一个新的 Node 中。

Range.toString()

返回 Range 的文本。

规范

规范
DOM
# interface-range
DOM 解析和序列化
# extensions-to-the-range-interface
CSSOM 视图模块
# extensions-to-the-range-interface

浏览器兼容性

另见