IHTMLElement2.getBoundingClientRect()无法正常工作

时间:2009-10-14 05:36:09

标签: c# element bho ihtmldocument

getBoundingClientRect()在所有情况下都无法正常工作。如果链接列表连续排列并且其中一半被推送到下一行,则会失败,因为所有链接都不能放入同一行。现在,对于第二行的第一个链接,getBoundingClientRect()没有给出正确的结果。

IHTMLRect.bottom和IHTMLRect.right的值是正确的,但IHTMLRect.left和IHTMLRect.top的值对应于第一行中的第一个元素。

如何获取第二行第一个链接的确切坐标?

这种情况发生在谷歌页面或维基百科页面上,其中有大量语言或位置链接。

例如,widipedia中的链接说,

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 个答案:

答案 0 :(得分:0)

当我尝试IHTMLElement2.getClientRects()时。它逐行提供元素内部内容的矩形。因此解决问题变得棘手。