JS: contenteditable [get/set]
by grano
HTML
<div contenteditable>foo bar</div>
JavaScript
var getSelection = function(elem) {
var range = window.getSelection().getRangeAt(0);
return {
start: range.startOffset,
end: range.endOffset
};
};
var setSelection = function(elem, start, end) {
var range = document.createRange();
range.setStart(elem.firstChild, start);
range.setEnd(elem.firstChild, end);
var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
};
var elem = document.querySelector("div");
setSelection(elem, 0, 3);
console.log( getSelection(elem) );