У меня есть этот маркер span
, и когда я выбираю его и сворачиваю диапазон, я хочу записать текущую позицию диапазона, но вызов getBoundingClientRect
продолжает возвращать ноль для всех значений.Могу ли я что-нибудь сделать, чтобы он возвращал правильные значения после выбора узла и свертывания?
$('button').on('click', function() {
const range = document.createRange();
const $marker = $('#marker');
range.selectNode($marker.get(0));
range.collapse();
const sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
console.log(range.getBoundingClientRect());
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="wrapper" contenteditable="true">
hello <span id="marker"></span> world
</div>
<button>go to marker</button>