概要
ユーザーが選択した文字列の範囲やキャレットの現在位置を示す Selection
オブジェクトを返します。
構文
selection = window.getSelection();
値
A Selection
オブジェクト。
文字列へ型変換すると、空の文字列(""
)を追加するか Selection.toString()
を使って、選択された文字列を返します。
例
function foo() {
var selObj = window.getSelection();
alert(selObj);
var selRange = selObj.getRangeAt(0);
// 以下、取得した選択文字列に対して何らかの処理を行う
}
注記
Selection オブジェクトの文字列表現
JavaScript では、文字列が渡されることを前提としている関数 (window.alert()
や document.write()
) にオブジェクトが渡されると、そのオブジェクトの toString()
メソッドが呼び出され、その結果が関数へ渡されます。このため、実際はプロパティとメソッドを持つオブジェクトなのに、文字列であるかのように見えてしまいます。
上の例では、window.alert()
へ渡されるときに自動的に selObj.toString()
が呼び出されます。しかし、Selection
オブジェクトで JavaScript の String プロパティや length
、substr
などのメソッドを直に使おうとすると、オブジェクトにその名前のプロパティやメソッドが存在しないはエラーとなり、存在する場合は予期せぬ結果を返すでしょう。Selection
オブジェクトを文字列として使うなら、下記のように toString()
メソッドを呼び出してください。
var selectedText = selObj.toString();
selObj
はSelection
オブジェクトです。selectedText
は文字列です。 (選択された文字列)
関連オブジェクト
同じように機能する Document.getSelection()
を呼び出すことができます。
HTML input 要素は selection を扱うための簡単な支援 API を提供しています。 (詳細: HTMLInputElement.setSelectionRange()
)
selection と focus の違いに注意してください。Document.activeElement
はフォーカスされた要素を返します。
仕様
仕様書 | 策定状況 | コメント |
---|---|---|
Selection API Window.getSelection() の定義 |
草案 | 新仕様 |
HTML Editing APIs Window.getSelection() の定義 |
編集者草案 | 初期定義 |
ブラウザー実装状況
BCD tables only load in the browser