document.documentElement.clientHeightの挙動


 まあ、メモ代わりに。

 javascriptはブラウザによって挙動が異なるものだから困る。こないだはKonquerorというブラウザだけうまく動作しないと思ったら、KonquerorさんはJavaScriptを外部scriptにした場合、必ずUTF-8として読み込むらしく、Shift_JISで書いたらうまく動作しなかった。もちろん日本語含んでなければ動作するんでしょうけど。結局それは全てをUTF-8にしたらうまくいきました。

 今回はSafariでの謎。Macは普段は使わない(持ってない)ので動作確認の時に使うくらいなんですが、あまり熱心に確認してなかったため、気づかない問題があった。それがdocument.documentElement.clientHeightの挙動。

 window.innerHeightとほぼ同じ値をとるか、あるいはundefinedかと思っていたんですが、両方alertしてみたらwindow.innerHeightはちゃんと高さが表示されるものの、document.documentElement.clientHeightはなぜか中途半端な数値がでてきました。

 これを使って条件わけしていたので謎の挙動をしていたわけで、条件文を変えたらあっさり直りました。widthのほうはどちらも同じ値になってたんですが、なぜheightだけそうなるんでしょう。

参考:http://www.revulo.com/blog/20070628.html