Selection:getRangeAt() 方法
>Selection 接口的 getRangeAt() 方法会返回一个表示当前选中范围的 Range 对象。
如果所选范围的端点位于某个影子树中,那么 JavaScript 将无法访问这些影子节点,此方法应当将该范围重新限定为包含该端点的宿主元素。在实际情况下,大多数浏览器尚未实现这一行为,因此返回的范围结果是不可预测的。
备注:当在可能包含影子根的节点内进行选择时,可以使用 Selection.getComposedRanges()(如果浏览器支持)来获取位于影子树内的选区范围,或者将选区可靠地重新限定到宿主节点上。
语法
js
getRangeAt(index)
参数
index-
要返回的范围的从零开始的索引。如果该数为负数,或大于等于
Selection.rangeCount,将会导致错误。
返回值
指定的 Range 对象。
示例
js
let ranges = [];
const sel = window.getSelection();
for (let i = 0; i < sel.rangeCount; i++) {
ranges[i] = sel.getRangeAt(i);
}
/* ranges 数组中的每一项现在都是一个 range 对象,
* 用来表示当前选区中的其中一个范围 */
规范
| 规范 |
|---|
| Selection API> # dom-selection-getrangeat> |
浏览器兼容性
参见
- 所属的
Selection接口。