• 締切済み

document.body.scrollTop の数値が正常に取得できない

とあるJavascriptを組んでいるのですが、document.body.scrollTopの値が取得できず困っています。 検証の結果、下記のプログラムだと数値が取得できず、1行目の<!DOC...>を削除すると正常に取得することができます。 スタイルシートを多用している関係で、1行目を削除してしまうと他のレイアウトが崩れてしまうため、これ以外で正常に動かす方法はないでしょうか? 検証ブラウザ:IE6.0.2900、Firefox 1.52 ============== <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> <title>TEST</title> </head> <body> <p>&nbsp;</p> <p>&nbsp;</p> 【中略】 <p>&nbsp;</p> <p><a href="javascript:alert(document.body.scrollTop);">document.body.scrollTopの数値を表示</a></p> </body> </html>

みんなの回答

noname#22259
noname#22259
回答No.2

>>No.1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ....> に見えている「?」は「"」です。 Unicodeを使っていますね。ANSIのみ。

Fakes
質問者

補足

回答ありがとうございます。 「正常に取得できた!」と思ったらレイアウトが崩れてしまいました。 スタイルシートの問題も絡んでくるのかもしれませんね。 とりあえず、実証用サンプルを組んでみました。 下記のソースで、DIVの中央寄せとdocument.body.scrollTop の数値取得を同時に達成したいのです。 よろしくお願いします。 <?xml version="1.0" encoding="Shift_Jis"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> <title>TEST</title> </head> <body> <p>&nbsp;</p> <p>&nbsp;</p> 【中略】 <p>&nbsp;</p> <div style="margin-left:auto; margin-right:auto; width:100px; background-color:#FFFF00"> <p><a href="javascript:alert(document.body.scrollTop);">ALERT</a></p> </div> </body> </html>

noname#22259
noname#22259
回答No.1

× <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "?http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> ○ <?xml version="1.0" encoding="Shift_Jis"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "?http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">