JavaScript обнаруживает смещение текста в узле в позиции
Я хотел бы обнаружить смещение элемента и текста под указанными координатами x и y.
Допустим, у нас есть такой DOM:
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nam quis nisl lectus. Donec euismod dignissim turpis, nec
viverra nulla iaculis nec. _Fusce_ mattis orci eget nibh
rhoncus auctor at in enim.
</p>
Когда пользователь щелкает мышью непосредственно перед словом _Fusce_
имея координаты х и у, я хотел бы получить смещение слова _Fusce_
в текстовом узле в качестве индекса. Это возможно?
1 ответ
Решение
WebKit имеет document.caretRangeFromPoint()
за это. Спецификация CSSOM View имеет document.caretPositionFromPoint()
, но только Firefox 20 и более поздние версии в настоящее время реализуют его.
В Firefox, если интересующая вас позиция произошла из события мыши, вы можете получить эту информацию непосредственно из события, которое имеет свойства rangeParent
а также rangeOffset
,
Вот похожий вопрос с примером кода: