サーチ…
構文
- 選択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