Возможный дубликат: Получить позицию каретки в contentEditable div
У меня есть contenteditable div, и я пытаюсь получить позицию каретки внутри этого div в браузерах без IE, используя следующий код:
var caretPosition = 0, containerEl = null, sel, range;
if (window.getSelection)
{
sel = window.getSelection();
if (sel.rangeCount) {
range = sel.getRangeAt(0);
if (range.commonAncestorContainer.parentNode == editableDiv) {
caretPosition = range.endOffset;
}
}
}
Он возвращает позицию каретки правильно для текста в одной строке, но у меня есть несколько строк текста, и кажется, что для каждой новой строки позиция каретки для каждой строки начинается с 0. Моя проблема в том, что мне нужна позиция каретки для включения числа символов, найденных в предыдущих строках, например, для второй строки
caretPosition = количество символов в первой строке + число символов перед каретой во второй строке.
Он возвращает только символ no перед каретой во второй строке. Как я могу достичь такого поведения? Или как у меня есть другой диапазон, который включает текст, найденный в строках выше?
Любые советы очень ценятся, спасибо!