このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Selection: getRangeAt() メソッド

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。

getRangeAt()Selection インターフェイスのメソッドで、現在選択されている範囲を表す範囲オブジェクトを返します。

選択された範囲の両端がシャドウツリー内にある場合、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 配列の各要素は、現在の選択範囲のうちの
 * 1 つを表す範囲オブジェクトになります */

仕様書

仕様書
Selection API
# dom-selection-getrangeat

ブラウザーの互換性

関連情報

  • 所属先のインターフェイスである Selection