Диапазон текста Javascript до положения каретки

Я использую IE 8, и я хотел бы создать текстовый диапазон в contenteditable div, который должен включать весь текст до позиции каретки (известный мне в editableDiv). До сих пор я был в состоянии выделить весь текст внутри моего div:

 function myFunction(editableDiv, cursorPosition)
 {
    if (document.selection) {
       var range = document.body.createTextRange();
        range.moveToElementText(editableDiv);            
        range.collapse(false);
        range.select();
    }
 }

<div id="myDiv" runat="server" contenteditable="true">

Но как я могу создать текстовый диапазон, который начинается с первого символа в div и длится до позиции каретки? Большое спасибо.

1 ответ

Решение

Использовать setEndPoint() метод TextRange:

var caretRange = document.selection.createRange();
var preCaretRange = document.body.createTextRange();
preCaretRange.moveToElementText(editableDiv);
preCaretRange.setEndPoint("EndToStart", caretRange);

Очевидно, вам понадобится другой код для браузеров, отличных от IE.

Другие вопросы по тегам