Диапазон getClientRects(), getBoundingClientRect() неправильный, когда в абзаце HTML есть пустой якорь

Я обнаружил странное поведение getClientRects() [getBoundingClientRect()]:

Посмотрите на этот HTML-код:

<p>Text here... word1<a id='id' class='class'/>word2 Other multiline Text here...</p>

[Обратите внимание, что внутри элемента a нет текста, я тестировал только этот вид кода, не знаю, дают ли другие механизмы такую ​​же "ошибку".]

Предположим, что когда пользователь выбирает диапазон в p 'estate', в котором есть привязка, например "word1 word2", функция JS сохраняет начальные / конечные элементы и смещения. В следующий раз другая функция создаст диапазон с этими границами. Но если getClientRects() вызывается в этом диапазоне, он выдает много ректов, отличных от двух ожидаемых: первый и последний ректы массива действительно являются ожидаемыми, но между ними есть много ректов, которые фактически покрывают весь элемент p. [range.getBoundingClientRect() тоже страдает.] Как этого избежать?

0 ответов

Другие вопросы по тегам