Диапазон текста 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.