昨日、スタイルシートの「表示モード」とJavaScriptを使って表示モードを取得する方法について書きました。
で、どーしてこれが必要なのかというと、scrollTop、scrollHeight、scrollWidthなどを使いたい場合、表示モードによって、実装の仕方が変わってくるので、取得する必要があるのです。
IE6では標準モードの場合、「document.body」の属性取得で不適切な値が返されることがあります。
via:スクロール位置取得:kl_slx/y()
document.body.clientWidth/clientHeight/scrollWidth/scrollHeight などなど。
というわけで、スクロールの位置を取得したい場合、
/* IEの場合 */ var hoge; //標準モードの場合 if(document.compatMode == "CSS1Compat"){ hoge = document.documentElement.scrollTop; //互換モードの場合 }else{ hoge = document.body.scrollTop; } |
と書かないと、取得できない場合もあるようです。
firefoxの場合は、どうやって実装するんだろー(??)
時間があったら、後で検証してみたいと思います。
http://diaspar.jp/node/47
返信削除こんな感じみたいね。
所でふと思ったんだけど、XHTMLで
今後htmlを書いていくと、頭にはXML
宣言がつくのでDOCTYPEの宣言はその後になっちゃうよね。
そうなると標準/互換モードの設定ができなくなるよーな。