getBoundingClientRect возвращает 0 для верхнего, левого, правого, нижнего в Safari
Итак, у меня есть спорный div, работающий на Facebook draft-js
, Мне нужно было получить визуальное положение каретки внутри этого div, и я реализовал это (который работает в Firefox и Chrome):
const selection = window.getSelection && window.getSelection();
if (selection.rangeCount > 0) {
const coordinates = selection.getRangeAt(0).getBoundingClientRect();
}
Я получаю правильные координаты в случае Chrome и Firefox. Однако в Firefox я получаю 0 для всех свойств позиции. Любое обходное / кросс-браузерное решение для этого?
1 ответ
Похоже, я исправил проблемы, используя следующий код:
let range = window.getSelection().getRangeAt(0);
range = range.cloneRange();
range.setStart(range.startContainer, 0);
range.getBoundingClientRect();
Вот скрипка.