サーチ…


構文

  • 選択sel = window.getSelection();
  • 選択sel = document.getSelection(); //上記と同等
  • 範囲の範囲= document.createRange();
  • range.setStart(startNode、startOffset);
  • range.setEnd(endNode、endOffset);

パラメーター

パラメータ詳細
startOffset ノードがTextノードの場合は、 startNodeの先頭から範囲の開始点までの文字数です。それ以外の場合は、範囲が始まるstartNodeの始まりから始まる子ノードの数です。
endOffset ノードがテキストノードの場合は、 startNodeの先頭から範囲が終了するまでの文字数です。それ以外の場合は、範囲が終了するstartNodeの始まりから終わりまでの子ノードの数です。

備考

Selection APIを使用すると、ドキュメント内で選択(強調表示)されている要素とテキストを表示および変更できます。

これは、ドキュメントに適用されるSingleton Selectionインスタンスとして実装され、それぞれが1つの隣接する選択領域を表すRangeオブジェクトのコレクションを保持します。

具体的に言えば、Mozilla Firefoxを除くブラウザは選択肢の中で複数の範囲をサポートしているわけではありません。さらに、ほとんどのユーザーは複数の範囲の概念に精通していません。したがって、開発者は通常、1つの範囲にしか関心がありません。

選択されているすべての選択を解除する

let sel = document.getSelection();
sel.removeAllRanges();

要素の内容を選択する

let sel = document.getSelection();

let myNode = document.getElementById('element-to-select');

let range = document.createRange();
range.selectNodeContents(myNode);

sel.addRange(range);

ほとんどのブラウザは複数の範囲をサポートしていないため、前の選択範囲のすべての範囲を最初に削除する必要があります。

選択のテキストを取得する

let sel = document.getSelection();
let text = sel.toString();
console.log(text); // logs what the user selected

あるいは、オブジェクトを文字列に変換するときに、 toStringメンバ関数がいくつかの関数によって自動的に呼び出されるため、必ずしも自分で呼び出す必要はありません。

console.log(document.getSelection());


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow