Вроде поздно на вечеринку, но в случае, если кто-то еще борется.Ни один из поисковых запросов Google, которые я обнаружил за последние два дня, не нашел ничего, что работало бы, но я нашел краткое и элегантное решение, которое всегда будет работать независимо от того, сколько у вас вложенных тегов:
cursor_position() {
var sel = document.getSelection();
sel.modify("extend", "backward", "paragraphboundary");
var pos = sel.toString().length;
console.log('pos: '+pos);
if(sel.anchorNode != undefined) sel.collapseToEnd();
return pos;
}
Он выбирает весь путь обратно к началу абзаца, а затем считает длину строки, чтобы получить текущую позицию, а затем отменяет выбор, чтобы вернуть курсор в текущую позицию.Если вы хотите сделать это для всего документа (более одного абзаца), измените paragraphboundary
на documentboundary
или любую другую гранулярность для вашего случая.Проверьте API для подробнее .Ура!:)