Учитывая contentEditable Div, как установить курсор на определенную позицию? - PullRequest
3 голосов
/ 03 ноября 2011

При условии, что div contentEditable выглядит так:

<div contenteditable="true">Here is some text, hello world.</div>

Как установить курсор на позицию 6, сразу после s in?

Я пытался использовать:

savedRange = window.getSelection().getRangeAt(0);

А затем измените значения следующим образом:

savedRange.startOffset = 6
savedRange.endOffset = 6

Но это не обновляет saveRange.

Любые идеи, как получить курсор /карет в div?спасибо

1 Ответ

4 голосов
/ 03 ноября 2011

Это позиция 7. В любом случае, вот как, если вы дадите своему редактируемому <div> идентификатор «myDiv». Обратите внимание, что это не будет работать в IE <9, который имеет совершенно другой диапазон и API выбора. </p>

if (window.getSelection) {
    var sel = window.getSelection();
    var textNode = document.getElementById("myDiv").firstChild;
    var range = document.createRange();
    range.setStart(textNode, 7);
    range.collapse(true);
    sel.removeAllRanges();
    sel.addRange(range);
}
...