アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。
ブラウザのサイズを取得するにはどうすればよいのでしょうか?

document.body.clientHeightで取得出来るのは分かりましたが
DTDにより動作したり、しなくなるのも分かりました。
×動作しない
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …

○動作する
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …

後者のものですとIEでは動作しますが、firefoxでは動作しません。
何か対処法は、御座いませんでしょうか?

一番望む形は
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …
の宣言で、ブラウザサイズが取れるようになるのがベストです。

CSSを使用しているので<?xml version="1.0" encoding="UTF-8"?>を入れると
表示モードが互換になるので・・・。

対応したいブラウザはIE6.0、firefox,Safariです。

一応ソース
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script>
function init(){
var bodyHeight = document.body.clientHeight;
alert(bodyHeight);
}
</script>
</head>
<body onload="init();">
<div>
ほげ
</div>
</body>
</html>

A 回答 (3件)

#1です。

当方環境はSleipnir 2.48/IE7でしたが、
こんな記事も見かけました。実験はしていませんが。
記述ミスとかでIEで動作しないという話ではないんですよね?(動作しないのはFirefoxであって。)

http://mag.autumn.org/Content.modf?id=2005110713 …

この回答への補足

大変失礼しました。
IEでも取得することができました。

補足日時:2006/10/29 10:57
    • good
    • 0
この回答へのお礼

himajin100000様、ご教授有難う御座います。
動作しないのはFirefox(当方1.5.0.7)です。
が、お教え頂いた
document.documentElement.clientHeightにしますと
Firefoxでブラウザのサイズを取得することが出来ました。
が、IEで取得出来なくなりました。

お礼日時:2006/10/29 10:44

IEの標準準拠モードなら


var bodyHeight = document.getElementsByTagName("html")[0].clientHeight;
でいかがでしょうか。
ちなみに、IEでDOCTYPE宣言がある場合でもXML宣言がある場合は後方互換モードになるようです。
    • good
    • 0
この回答へのお礼

matchasoft様、ご教授有難う御座います。
XML宣言がない場合はIE,firefoxとも、OKでした。
XML宣言がある場合はIEはOK、firefoxはNGでした。

お礼日時:2006/10/31 13:01

Firefox 3.0a1ユーザです。


おっしゃるソースをテキストエディタに貼り付け、hoge.htmlとして保存して開いてみましたがXML宣言の有無に関わらず正常動作してます。

#ところでError Consoleにエラーメッセージの類は出ていませんか?
    • good
    • 0
この回答へのお礼

himajin100000様、ご教授有難う御座います。
>#ところでError Consoleにエラーメッセージの類は出ていませんか?
firebugでもエラーメッセージは出ていません。

ANo2より、document.documentElement.clientHeightで
XML宣言なしでIE、Firefoxで取得することが出来ました。

Firefoxは私のバージョンが古かったので少し上げまして、
1.0.7にしました。(当サイト対応ブラウザが1.0.7からでした。失礼しました。)

整理しますと
document.body.clientHeightではIE、Forefox共に取得することが出来る。
document.documentElement.clientHeightではIEで取得可、Firefox(1.0.7)取得不可。
himajin100000様のFirefox 3.0a1なら出来るのかもしれません・・・。

お礼日時:2006/10/29 11:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!