This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The type read-only property of the Selection interface returns a DOMString describing the type of the current selection.


value = sel.type


A DOMString describing the type of the current selection. Possible values are:

  • None: No selection has currently been made.
  • Caret: The selection is collapsed (i.e. the caret is placed on some text, but no range has been selected).
  • Range: A range has been selected.


In this example, the event handler will fire each time a new selection is made. console.log(selection.type) will return Caret or Range depending on whether the caret is placed at a single point in the text, or a range has been selected.

var selection;

document.onselectionchange = function() {
  console.log('New selection made');
  selection = document.getSelection();


Specification Status Comment
Selection API
The definition of 'Selection.type' in that specification.
Working Draft Current

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support Yes Yes57 Yes Yes ?
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support Yes Yes Yes57 Yes ? ?

See also

Document Tags and Contributors

Contributors to this page: ddbeck, chrisdavidmills
Last updated by: ddbeck,