Selection:getRangeAt() 方法

Baseline 已广泛支持

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

Selection 接口的 getRangeAt() 方法返回一个表示当前选定范围的范围对象。

如果选定范围的端点位于 Shadow Tree 中,则 JavaScript 无法看到 Shadow 节点,该方法应该重新调整范围以包含包含端点的宿主元素。实际上,大多数浏览器尚未实现此行为,返回的范围是不可预测的。

注意: 在选择可能包含 Shadow Root 的节点时,您可以使用 Selection.getComposedRanges()(如果支持)来获取 Shadow Tree 内部的选择范围,或者可靠地将选择重新调整到宿主节点。

语法

js
getRangeAt(index)

参数

index

要返回的范围的零基索引。负数或大于等于 Selection.rangeCount 的数字将导致错误。

返回值

指定的 Range 对象。

示例

js
let ranges = [];

sel = window.getSelection();

for (let i = 0; i < sel.rangeCount; i++) {
  ranges[i] = sel.getRangeAt(i);
}
/* Each item in the ranges array is now
 * a range object representing one of the
 * ranges in the current selection */

规范

规范
Selection API
# dom-selection-getrangeat

浏览器兼容性

另见