Всем спасибо за помощь, вот что у меня получилось
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<div id="editor" style="border:1px dashed #999; color:#666; background:#EEE; padding:2px 5px; margin:10px 0;" contenteditable>
какой-то текст
</div>
<div>
<input onclick="setSelection()" type="button" value="Выделить">
<input onclick="saveSelection()" type="button" value="Сохранить выделение">
</div>
<script>
var wsEditor = document.getElementById('editor');
var wsSelection;
function setSelection() {
if (wsSelection) {
var sel = window.getSelection();
var rng = document.createRange();
rng.selectNode(wsEditor);
rng.setStart(wsSelection.startContainer, wsSelection.startOffset);
rng.setEnd(wsSelection.endContainer, wsSelection.endOffset);
sel.removeAllRanges();
sel.addRange(rng);
}
}
function saveSelection() {
wsEditor.focus()
var sel = window.getSelection();
if (sel.anchorNode) {
wsSelection = sel.getRangeAt(0);
}
}
</script>
</body>