IHTMLElement2.getBoundingClientRect() не работает правильно

GetBoundingClientRect() не работает точно для всех случаев. Сбой, когда, скажем, список ссылок, расположенных рядом в строке, и половина из них перемещаются на следующую строку, потому что все ссылки не могут быть помещены в одну строку. Теперь для первой ссылки во 2-й строке getBoundingClientRect() не дает правильных результатов.

Значение для IHTMLRect.bottom и IHTMLRect.right является правильным, однако значение для IHTMLRect.left и IHTMLRect.top соответствует первому элементу в первой строке.

Как получить точные координаты для первой ссылки во втором ряду?

Это происходит, скажем, на странице Google или на странице Википедии, где есть множество ссылок на язык или местоположение.

Например, ссылки в википедии говорят,

Deutsch • English • Español • Esperanto • Français • Bahasa Indonesia • Italiano • 

будет присутствовать в две строки, как показано ниже, из-за расположения.

Deutsch • English • Español • Esperanto • 
Français • Bahasa Indonesia • Italiano • 

В этом случае IHTMLElement2.getBoundingClientRect() отлично работает для всего, кроме Français.

Я не уверен, почему это происходит. Любая помощь или решение этой проблемы очень ценится.

1 ответ

Решение

Когда я пытался IHTMLElement2.getClientRects(). Он предоставляет прямоугольники для внутреннего содержимого элемента строка за строкой. Так что это становится сложно решить проблему.

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