We're looking for a person or people to help audit MDN to find places we could speed up. Is this you or someone you know? Check out the RFP: https://mzl.la/2IHcMiE


ユーザーが選択した文字列の範囲やキャレットの現在位置を示す Selection オブジェクトを返します。 NB. this is nothing to do with the DOM selection list object! What the heck is 'selection list object'? -Nickolay


selection = window.getSelection();


Selection オブジェクト。

文字列へ型変換すると、空の文字列("")を追加するか Selection.toString() を使って、このオブジェクトは選択された文字列を返します。

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


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

JavaScript では、文字列を引数にとる関数 (window.alertdocument.write) に selection オブジェクトが渡されるとき、selection オブジェクトのかわりにそのオブジェクトと対応する文字列(たとえば、選択範囲の文字列)が渡されます。このために、それが実際には独自のプロパティやメソッドを持っているオブジェクトであるにもかかわらず、selection オブジェクトは文字列のように見えることもあります。しかしこれは、正確には toString() の返り値が渡されているのです。

上の例では、selObjwindow.alert() に渡されるときに自動的に「変換されて」います。しかし、JavaScript の String プロパティや、lengthsubstr などといったメソッドを使用する際には、明示的に toString を呼び出す必要があります。

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

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

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

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

I'm treading carefully with the word "convert" here because it could be misinterpreted as a permanent convert - Maian


仕様 策定状況 コメント
Selection API
Window.getSelection() の定義
草案 新仕様。
HTML Editing APIs
Window.getSelection() の定義
勧告改訂案 初回定義。


We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

機能 Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
基本サポート (有) (有) (有) 9 (有) (有)
Feature Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support ? (有) ? ? ? ?



 このページの貢献者: dskmori, sutara79, teoli, khalid32, ethertank, Mgjbot, Luna8bit
 最終更新者: dskmori,