Selection インターフェイス
window.getSelection() Document.getSelection()
Selection インターフェイスとは、テキストを選択状態にするための方法を定義したインターフェイスです。
テキストの選択状態とは、テキストをマウスなどのデバイスを使って文章の一部を選択すると強調表示になる状態のことです。
console.log( getSelection().anchorNode );
テキストの選択に関する Selection オブジェクトは、 window.getSelection() または Document.getSelection() で取得します。
このインターフェイスに、anchor と focus というフレーズがありますが、選択開始を anchor として扱い、選択終了を focus として扱っています。
選択開始位置が Node オブジェクトが示すテキスト中の何文字目かを anchorOffset で。選択終了位置が、その Node オブジェクトにおいて何文字目かを focusOffset で返します。選択範囲は range です。
プロパティ(Properties)
Property | 概要 |
---|---|
.anchorNode | テキストの選択開始位置にある Node オブジェクトを返す |
.anchorOffset | .anchorNode のテキストの先頭から何文字目までが選択されていないか |
.focusNode | テキストの選択終了位置にある Node オブジェクトを返す |
.focusOffset | .focusNode のテキストの先頭から何文字目までが選択されているか |
.isCollapsed | テキストの選択開始位置と終了位置が同じであるか/否か。 Boolean 型で返す |
.rangeCount | 選択数を返す |
.type | 選択された方法をNone、Caret、Rangeというタイプ名で返す |
メソッド(Methods)
Method | 概要 |
---|---|
.addRange() | Range オブジェクトに指定された範囲を追加する。詳しくは Range インターフェイスを参照 |
.collapse() | 選択を解除。キャレットを指定の Node に留める。引数を指定しない場合は .removeAllRanges() と同じ |
.extend() | 指定された Node の指定された数分だけ選択範囲を拡げる |
.collapseToStart() | 選択範囲を解除しキャレットをその始点に移動 |
.collapseToEnd() | 選択範囲を解除しキャレットをその終点に移動 |
.selectAllChildren() | 指定 Node の全ての内容を選択 |
.addRange(); | 選択範囲を拡げる。FireFoxのみ |
.removeRange() | 引数に Range オブジェクトを指定。Range オブジェクト分を選択から除く |
.removeAllRanges() | 選択を解除 |
.deleteFromDocument() | 選択範囲を削除 |
.toString() | Selection オブジェクトを文字列に変換。JavaScriptではなくても自動で文字列に変換される |
.containsNode() | 指定 Node が含まれているかを Boolean 型で返す |
Example 編集不可能なコンテンツ
getSelection()の例です。以下のテキストを適当に選択し、選択状態を確かめる
ボタンをクリックして下さい。
Example 編集可能なエレメント <textarea>
getSelection()を 編集可能なエレメント <textarea> の例です。
関連(Related)
HTML、CSS、DOMのHTMLエレメント、Windowに関する用途一覧です。
HTML
CSS
- サイズ
-
- height、 width、 max-height、 max-width、 min-height、 min-width、 resize
- スクロール追加
- overflow、 overflow-x、 overflow-y
- マージン、パディング、ボーダー
-
- 共通
- box-sizing、 display
- マージン
- margin、 margin-bottom、 margin-left、 margin-right、 margin-top
- パディング
- padding、 padding-bottom、 padding-left、 padding-right、 padding-top
- ボーダー、罫線
-
- 全体
- border、 border-collapse、 border-color、 border-spacing、 border-style、 border-width
- 上辺
- border-top、 border-top-color、 border-top-left-radius、 border-top-right-radius、 border-top-style、 border-top-width
- 下辺
- border-bottom、 border-bottom-color、 border-bottom-left-radius、 border-bottom-right-radius、 border-bottom-style、 border-bottom-width
- 左辺
- border-left、 border-left-color、 border-left-style、 border-left-width
- 右辺
- border-right、 border-right-color、 border-right-style、 border-right-width
- 角を丸に
- border-radius
- 画像を線に
- border-image、 border-image-outset、 border-image-repeat、 border-image-slice、 border-image-source、 border-image-width
- アウトライン
- outline、 outline-color、 outline-offset、 outline-style、 outline-width
- 配置
-
- 位置調整
- bottom、 left、 right、 top、 position、 z-index
- 横並び(フレックス)
- display:flex;、 align-content、 align-items、 align-self、 justify-content、 flex-wrap、 flex-basis、 flex-direction、 flex-flow
- 配列(グリッド)
- display:grid;、 grid-area、 grid-auto-columns、 grid-auto-flow、 grid-auto-rows、 grid-column、 grid-column-end、 grid-column-gap、 grid-column-start、 grid-gap、 grid-row、 grid-row-end、 grid-row-gap、 grid-row-start、 grid-template、 grid-template-areas、 grid-template-columns、 grid-template-rows、
- フレックス、グリッドの共通 横並び順
- order
- 背景
- background、 background-attachment、 background-blend-mode、 background-clip、 background-color、 background-image、 background-origin、 background-position、 background-repeat、 background-size、 linear-gradient、 radial-gradient
- フィルタ、加工
-
- filter、 transform、 transform-origin
- ブレンド
- isolation、 linear-gradient()、 mix-blend-mode、 radial-gradient()
- 影
- box-shadow
- 透過
- opacity
- 回転
- backface-visibility、
- 立体
- perspective、 perspective-origin
- 切り取り
- clip-path
- カラム
- column-fill、 column-gap、 column-rule、 column-rule-color、 column-rule-style、 column-rule-width、 column-span、 column-width、 columns
- ページ内移動
- scroll-behavior
- 表示、非表示
- visibility
DOM
HTMLエレメント
- インターフェース、クラス
- Document、 Element、 FocusEvent、 Attr
- イベント
- blur、 focus、 focusin、 focusout、 load、 resize、 scroll、 toggle
- プロパティ
- メソッド
Window
- インターフェース
- HashChangeEvent、 PageTransitionEvent、 Window
- イベント
- beforeunload、 hashchange、 load、 pagehide、 pageshow、 unload
- プロパティ
- newURL、 oldURL、 persisted
- メソッド
- clearTimeout()、 setTimeout()