getBoundingClientRect()は、すべての場合に正確に機能するわけではありません。すべてのリンクを同じ行に収めることができないため、連続して並んでいるリンクのリストとその半分が次の行にプッシュされると、失敗します。2行目の最初のリンクでは、getBoundingClientRect()は正しい結果を提供しません。
IHTMLRect.bottomとIHTMLRect.rightの値は正しいですが、IHTMLRect.leftとIHTMLRect.topの値は、最初の行の最初の要素に対応しています。
2行目の最初のリンクの正確な座標を取得するにはどうすればよいですか?
これは、たとえば、言語や場所のリンクがたくさんあるグーグルページやウィキペディアページで発生します。
たとえば、widipediaのリンクは次のように述べています。
Deutsch • English • Español • Esperanto • Français • Bahasa Indonesia • Italiano •
レイアウト上、以下のように2行で表示されます。
Deutsch • English • Español • Esperanto •
Français • Bahasa Indonesia • Italiano •
この場合、IHTMLElement2.getBoundingClientRect()は、Françaisを除くすべてに対して完全に機能します。
なぜこれが起こっているのかわかりません。この問題のヘルプや回避策をいただければ幸いです。