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

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support (Yes) (Yes) 57 (57) (Yes) (Yes) ?
Feature Android Edge Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Basic support ? (Yes) 57.0 (57) ? ? ?

See also

Document Tags and Contributors

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