This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The Selection.collapse() method collapses the current selection to a single point. The document is not modified. If the content is focused and editable, the caret will blink there.
Note: This method is an alias for the Selection.setPosition() method.
collapse(node) collapse(node, offset)
nodeThe caret location will be within this node. This value can also be set to null — if null is specified, the method will behave like Selection.removeAllRanges(), i.e., all ranges will be removed from the selection.
offset OptionalThe offset in node to which the selection will be collapsed. If not specified, the default value 0 is used.
None (undefined).
// Place the caret at the beginning of an HTML document's body.
const body = document.querySelector("body");
window.getSelection().collapse(body, 0);
| Specification |
|---|
| Selection API> # dom-selection-collapse> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
collapse |
1 | 12 | 1 | ≤12.1 | 1.3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 | 1 |
accepts_nodes_in_shadow_trees |
137 | 137 | 142 | 121 | No | 137 | 142 | 90 | No | No | 137 | No |
node_parameter_nullable |
39 | 17 | 55 | 26 | 1.3 | 39 | 55 | 26 | 1 | 4.0 | 39 | 1 |
offset_parameter_optional |
1 | 17 | 55 | ≤15 | 1.3 | 18 | 55 | ≤14 | 1 | 1.0 | 4.4 | 1 |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Selection/collapse