Мне потребовалось некоторое время, чтобы самостоятельно навести курсор.Возможно, вам придется немного изменить его, чтобы использовать с созданным вами диапазоном, но это должно привести вас в правильном направлении:
// sets the cursor position to the defined node
// ed: editor, start: defines if the cursor is to be placed at the start or end of the node
// return node: boolean, if set returns the caretnode instead of deleting it
function setCursor(ed, node, start, return_node){
tn = ed.getDoc().createTextNode(".");
if (start){
node.insertBefore(tn, node.firstChild);
}
else node.appendChild(tn);
rng = ed.selection.getRng();
rng.selectNode(tn);
rng.setStartBefore(tn);
rng.setStartAfter(tn);
ed.selection.setRng(rng);
if (return_node) return tn;
node.removeChild(tn);
}