NOTE: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
Clear Selection:
// get a Selection object representing the range of text selected by the user or the current position of the caret.
var selection = window.getSelection();
selection.removeAllRanges();
Set Selection By Node:
var selection = window.getSelection();
var range = document.createRange();
range.selectNode(nodeToSelect);
selection.addRange(range);
Set Selection By Indexes:
var selection = window.getSelection();
var range = document.createRange();
range.setStart(nodeToSelect, this.startIndex);
range.setEnd(nodeToSelect, this.endIndex);
selection.addRange(range);
Get Current Selection
var range = window.getSelection().getRangeAt(0);