DOCTYPEでjavascriptの挙動が変わるなんて

実験的に書いていたスクロールいじり系のスクリプトが、アプリケーションに組み込んだ途端に動かなくなった。scrollTopの値が常に0になる。むむぅ。

ハマりそうになって調べたら、どうもDOCTYPEによって、scrollTopの参照の仕方を変えないといけないとのこと。DOCTYPEの変更でjavascriptの挙動まで変わるとは思わなかった。理屈を言われれば道理が通るけど、しかしこれは反応できないッス…。

DOCTYPEを指定しない場合は、

document.body.scrollTop

DOCTYPEを指定する場合は、

document.documentElement.scrollTop

これで値を取得しないと、正しく参照できないと。他にもこの手のプロパティは同じような動作するんだろうなあ。覚えておかないと、ハマりそう。

参考:ブラウザのスクロール量を取得するには?

このエントリーのトラックバックURL
http://www.deftrash.com/admin/mt4/mt-tb.cgi/392