OpearのgetBoundingClientRectとgetClientRectsがおかしいのでテストページを作った

上の (さらに) 続き。

テストページを作った。

何がおかしいのか試してみたい人は、test というボタンを上からクリックしていってください。

  • "Good"と書いてあるところは、ちゃんと動きます。
  • "Weird"と書いてあるところは、幅がゼロの長方形を返すというワケワカランことになります。
  • "Fail"と書いてあるところは、getClientRects() を呼ぼうとしたらエラーも出さずに JavaScript が終了します。

getClientRects() が失敗する条件は、インライン要素の中にブロック要素があり、そのインライン要素に対して発動させたとき。(たぶん)

また、< br > タグなどで、それに準ずるレンダリングが行われた要素に対しても失敗する。

Operaには報告しておいたので、早く直されることを祈る。

ブロック要素を内包するインライン要素のスタイルが float:left とか float:right の場合は失敗しないみたいです。