DocumentOrShadowRoot.getSelection()

これは実験的な機能です。本番で使用する前にブラウザー実装状況をチェックしてください。

getSelection()DocumentOrShadowRoot インターフェイスのプロパティで、ユーザーが選択したテキストの範囲、またはキャレットの現在位置を表す Selection オブジェクトを返します。

構文

var selection = documentOrShadowRootInstance.getSelection()

引数

なし。

返値

Selection オブジェクト。

function foo() {
    var selObj = document.getSelection(); 
    alert(selObj);
    var selRange = selObj.getRangeAt(0);
    // do stuff with the range
}

メモ

Selection オブジェクトの文字列表現

JavaScript では、オブジェクトが string を取る関数 (Window.alert() など) に渡された場合、オブジェクトの toString() メソッドが呼び出され、関数にその返値が渡されます。これにより、プロパティやメソッドを持つ実際のオブジェクトであった場合、他の関数に使われると文字列になって現れることがあります。

上記の例では、 selObj.toString() が呼び出されてから Window.alert() に渡されます。しかし、 JavaScript の String のプロパティやメソッド、例えば lengthsubstrSelection オブジェクトに対して呼び出されると、そのプロパティやメソッドを持っていないため、エラーが発生するか予期しない結果が返ることがあります。 Selection オブジェクトを文字列として扱うには、 toString() メソッドを直接呼び出してください。

var selectedText = selObj.toString();
  • selObjSelection オブジェクトです。
  • selectedText は文字列 (選択中のテキスト) です。

Window.getSelection() を呼び出すと、 Document.getSelection() と同等の動作をします。

Firefox において現在は getSelection()<input> 要素の中では動作しないことに注意してください。 HTMLInputElement.setSelectionRange()) を使用することで回避できます。

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

仕様書

仕様書 状態 備考
Shadow DOM
DocumentOrShadowRoot の定義
廃止された 初回定義

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
getSelection
実験的
Chrome 完全対応 53Edge 完全対応 12Firefox 完全対応 63IE 完全対応 ありOpera 完全対応 40Safari 完全対応 ありWebView Android 完全対応 53Chrome Android 完全対応 53Firefox Android 完全対応 63Opera Android 完全対応 41Safari iOS 完全対応 ありSamsung Internet Android 完全対応 6.0

凡例

完全対応  
完全対応
実験的。動作が変更される可能性があります。
実験的。動作が変更される可能性があります。