range.getBoundingClientRect () возвращает ноль для всех значений после выбора узла и сворачивания диапазона - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть этот маркер 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>
...