OpearのgetBoundingClientRectとgetClientRectsがおかしいのでテストページを作った
上の (さらに) 続き。
テストページを作った。
何がおかしいのか試してみたい人は、test というボタンを上からクリックしていってください。
- "Good"と書いてあるところは、ちゃんと動きます。
- "Weird"と書いてあるところは、幅がゼロの長方形を返すというワケワカランことになります。
- "Fail"と書いてあるところは、getClientRects() を呼ぼうとしたらエラーも出さずに JavaScript が終了します。
getClientRects() が失敗する条件は、インライン要素の中にブロック要素があり、そのインライン要素に対して発動させたとき。(たぶん)
また、< br > タグなどで、それに準ずるレンダリングが行われた要素に対しても失敗する。
Operaには報告しておいたので、早く直されることを祈る。
ブロック要素を内包するインライン要素のスタイルが float:left とか float:right の場合は失敗しないみたいです。