IE7とdocument.body.clientHeight

2006-11-9 14:54
このエントリーをはてなブックマークに追加

IE7がリリースされてしてしばらく経ちましたが、やはり今まで作ったいくつかの Webシステムやサイトでもいくつか互換性の不具合が見つかっています。

例えば、document.body.clientHeight が 0 を返すようになったとか。IE6 でも標準準拠モードでは document.body.clientHeight が使えませんでした。この場合は document.documentElement.clientHeight を使えば回避できました。IE7 では互換モードでもこの記述が必須になったのでしょうか。それとも 標準準拠モードで XML 宣言がある場合は、正しく認識されるようになったというほうが正しいかも。いままでの IE6 の挙動がおかしかったとはいえ、修正するのはやっかいですね。

もっとも、Firefox も含めて表示領域の高さを取得したい場合は、次のようなコードにすれば様々な環境に対応可能です。

var bodyHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;

AJAX などで JavaScript を多用していますが、互換性を確保するにはいろいろ知識が必要になります。こういった違いはライブラリで吸収してくれると有り難いし、その方向に行くのは確実です。ただ、いまは各種ツールキット、ライブラリが溢れていて、どれを使えばよいのか正直わかりません。将来的には違いを吸収してくれる洗練されたライブラリが出てくるでしょうが、しばらく様子見でしょう。

コメントはまだありません

No comments yet.

Sorry, the comment form is closed at this time.

68 queries. HTML convert time: 1.159 sec. Powered by WordPress. Valid XHTML
Copyright © 2003-2017 @ futuremix.org ログイン