window.getSelection

概要

ユーザーが選択した文字列の範囲やキャレットの現在位置を示す Selection オブジェクトを返します。

構文

selection = window.getSelection();

A Selection オブジェクト。

文字列へ型変換すると、空の文字列("")を追加するか Selection.toString() (en-US) を使って、選択された文字列を返します。

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 プロパティや lengthsubstr などのメソッドを直に使おうとすると、オブジェクトにその名前のプロパティやメソッドが存在しないはエラーとなり、存在する場合は予期せぬ結果を返すでしょう。Selection オブジェクトを文字列として使うなら、下記のように toString() メソッドを呼び出してください。

var selectedText = selObj.toString();
  • selObjSelection オブジェクトです。
  • selectedText は文字列です。 (選択された文字列)

同じように機能する Document.getSelection() を呼び出すことができます。

HTML input 要素は selection を扱うための簡単な支援 API を提供しています。 (詳細: HTMLInputElement.setSelectionRange())

selectionfocus の違いに注意してください。Document.activeElement はフォーカスされた要素を返します。

仕様

仕様書 策定状況 コメント
Selection API
Window.getSelection() の定義
草案 新仕様
HTML Editing APIs
Window.getSelection() の定義
編集者草案 初期定義

ブラウザー実装状況

BCD tables only load in the browser

関連情報