k8o

← Playgrounds一覧に戻る
Web APIデモ3

Selectionオブジェクト

ユーザーが選択したテキストの範囲やキャレットの位置を扱うSelectionオブジェクトの紹介です。

Selectionオブジェクトのプロパティ

テキストを選択すると、選択文字列や開始・終了位置、選択の種類がリアルタイムに表示されます。

サンプルテキスト

あさ、眼をさますときの気持は、面白い。かくれんぼのとき、押入れの真っ暗い中に、じっと、しゃがんで隠れていて、突然、でこちゃんに、がらっと襖をあけられ、日の光がどっと来て、でこちゃんに、「見つけた!」と大声で言われて、まぶしさ、それから、へんな間の悪さ、それから、胸がどきどきして、着物のまえを合せたりして、ちょっと、てれくさく、押入れから出て来て、急にむかむか腹立たしく、あの感じ、いや、ちがう、あの感じでもない、なんだか、もっとやりきれない。

選択中のテキスト(selection.toString()

選択要素の開始位置の要素

selection.anchorNode.textContent, selection.anchorOffset

選択要素の終了位置の要素

selection.focusNode.textContent, selection.focusOffset

選択の種類(selection.type

Selectionオブジェクトのメソッド

ボタンからaddRangeやextendなどを呼び出し、選択範囲をスクリプトで作成・削除・拡張できます。

サンプルテキスト

あさ、眼をさますときの気持は、面白い。かくれんぼのとき、押入れの真っ暗い中に、じっと、しゃがんで隠れていて、突然、でこちゃんに、がらっと襖をあけられ、日の光がどっと来て、でこちゃんに、「見つけた!」と大声で言われて、まぶしさ、それから、へんな間の悪さ、それから、胸がどきどきして、着物のまえを合せたりして、ちょっと、てれくさく、押入れから出て来て、急にむかむか腹立たしく、あの感じ、いや、ちがう、あの感じでもない、なんだか、もっとやりきれない。

選択範囲の追加

selection.addRange(Range)

選択範囲の削除

selection.removeAllRanges(), selection.empty()

要素の子を全て選択する

selection.selectAllChildren(Node)

範囲の変更

selection.extend(Node, ?offset)

Baseline 2025で追加されたgetComposedRangesメソッド

閉じたShadow Tree内の選択で、getRangeAtとgetComposedRangesが返す範囲の違いを比較できます。

サンプルテキスト(テキスト全体が閉じたShadow Tree)

あさ、眼をさますときの気持は、面白い。かくれんぼのとき 、押入れの真っ暗い中に、じっと、しゃがんで隠れていて、突然、でこちゃんに、がらっと襖をあけられ、日の光がどっと来て、でこちゃんに、「見つけた!」と大声で言われて、まぶしさ、それから、へんな間の悪さ、それから、胸がどきどきして、着物のまえを合せたりして、ちょっと、てれくさく、押入れから出て来て、急にむかむか腹立たしく、あの感じ、いや、ちがう、あの感じでもない、なんだか、もっとやりきれない。

SafariやIOSのChrome等ではoptionsを含んだgetComposedRangesメソッドが正しく動作しない場合があります。