ウィンドウの有効幅(height)を取得するJavaScript

screen.availHeightだとステータスバー等も含んでしまっているような数値が出てしまうので、ステータスバー等を含めない、実際の有効縦幅を出せる方法がありましたら教えて下さい。

回答の条件
  • 1人10回まで
  • 登録:2006/12/11 14:54:37
  • 終了:2006/12/16 08:17:16

ベストアンサー

id:sight No.2

sight回答回数69ベストアンサー獲得回数12006/12/11 17:04:00

ポイント100pt

基本的に1の方が答えている通りだと思いますが・・・。


screenは、OSの管理しているスクリーンディバイスの情報を貰うので、availHeightでは

ブラウザにステータスバーがあろうが無かろうが、ブラウザのサイズが全画面表示だろ

うが100×100ピクセルくらいだろうが、関係なく、利用可能な画面の縦幅を返してくる

と思います。

ちなみに、screen.Heightは純粋にスクリーンディバイスの縦幅を返します。


もしも、コンテンツのために利用可能な有効領域が欲しいのでしたら、

Netscape系はwindow.innerHeight、IE系はdocument.body.clientHeightで取れる値を

使います。

(window.open等で指定できるウィンドウサイズは、このサイズになります。)


なお、ブラウザによって若干値が異なり、IEではスクロールバーがある場合、そのサイズ

を含まず、Mozillaでは含みます。この辺はブラウザの実装次第でしょう。

id:istreet

なるほど、ありがとうございます。

window.innerHeight/document.body.clientHeightで欲しい数値が取れました。

スクロールバーについても大変勉強になりました。

2006/12/11 23:13:18

その他の回答(1件)

id:kimizu No.1

kimizu回答回数726ベストアンサー獲得回数212006/12/11 15:38:05

ポイント90pt

http://www.openspc2.org/JavaScript/ref/screen/availH.htm

http://www.hakko.co.jp/javascript/kantan0801.htm

screenは、画面全部になるので、screen.availHeightだと、

画面の有効高さになると思いますよ。

ブラウザのサイズでは無いですので、ステータスバーは関係ないのでは?

http://www.tagindex.com/javascript/window/open_option.html

http://www.scollabo.com/banban/java/ref_01.html

もしかして、こっちでしょうか。

新規作成の際には、ステータスバーの有無などは指定できますが、

現行のウィンドウでツールバーの有無やステータスバーの有無は

確認できないようです。

id:istreet

ありがとうございます。

仕様的にはavailHeightは有効幅であると書かれているのですが、どうも実際に試してみる(availHeightで出された数値と自分で実際に計ってみた有効縦幅を比べてみる)と数十ピクセルほど合わなくて、それが私の環境の場合、ステータスバーのHeight分の数値のようなのです。

ウィンドウの新規作成の際にstatus=noを指定する方法も試してみたのですが、最近のブラウザではセキュリティの問題でstatusパラメータの指定に関わらず強制的にステータスバーが表示されるようで、ステータスバーが表示されている状態での正確な有効縦幅が必要で困っています。

2006/12/11 16:19:16
id:sight No.2

sight回答回数69ベストアンサー獲得回数12006/12/11 17:04:00ここでベストアンサー

ポイント100pt

基本的に1の方が答えている通りだと思いますが・・・。


screenは、OSの管理しているスクリーンディバイスの情報を貰うので、availHeightでは

ブラウザにステータスバーがあろうが無かろうが、ブラウザのサイズが全画面表示だろ

うが100×100ピクセルくらいだろうが、関係なく、利用可能な画面の縦幅を返してくる

と思います。

ちなみに、screen.Heightは純粋にスクリーンディバイスの縦幅を返します。


もしも、コンテンツのために利用可能な有効領域が欲しいのでしたら、

Netscape系はwindow.innerHeight、IE系はdocument.body.clientHeightで取れる値を

使います。

(window.open等で指定できるウィンドウサイズは、このサイズになります。)


なお、ブラウザによって若干値が異なり、IEではスクロールバーがある場合、そのサイズ

を含まず、Mozillaでは含みます。この辺はブラウザの実装次第でしょう。

id:istreet

なるほど、ありがとうございます。

window.innerHeight/document.body.clientHeightで欲しい数値が取れました。

スクロールバーについても大変勉強になりました。

2006/12/11 23:13:18

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

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません