У меня есть элемент contentEditable (может быть p, div,...), и я хотел бы получить в нем позицию каретки (курсора). Обычно я могу добиться этого с помощью этого фрагмента кода:
var position = window.getSelection().getRangeAt(0).startOffset;
Это прекрасно работает, пока элемент содержит только текст. Но когда элемент содержит некоторое форматирование HTML, возвращаемая позиция относится к позиции каретки внутри включенного элемента HTML.
Предположим, что содержимое элемента contentEditable является следующим:
AB<b>CD</b>EF
Если карет находится внутри <b></b>
, скажем между C и D, возвращаемая позиция с указанным выше кодом равна 1 вместо 3 (подсчитывается с начала содержимого содержимого contentable)
Может ли кто-нибудь придумать решение?