Я разрабатываю приложение с элементами contenteditable
и функцией перетаскивания для некоторых элементов span. Цель состоит в том, чтобы перетащить элемент span и поместить его в элемент contenteditable
.
Что у меня есть сейчас - при перетаскивании на событие document.onmouseup
я получаю целевой элемент (из свойства event.toElement
), чтобы я мог легко удалить упавший элемент из родительского и добавить, где он был удален.
Что мне нужно - позиция курсора / каретки (эквивалент свойства input selectionStart
) для элемента contenteditable
по заданным координатам события мыши. Это сложно.
Я знаю, что есть window.getSelection()
, и он отлично работает, но только если курсор действительно есть. Пока я выполняю перетаскивание, курсор находится не в элементе contenteditable
.
Я пытался запустить event.toElement.focus()
при отбрасывании, но, конечно, курсор переместился в положение 0. Также я играл с document.elementFromPoint(x, y)
но он возвращает весь элемент, я могу вызвать click()
на нем, но те же результаты -
Есть ли способ получить позицию курсора по координатам?