人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: istreet
●カテゴリ:ウェブ制作
✍キーワード:JavaScript screen ウィンドウ ステータス
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● kimizu
●90ポイント

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

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

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

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

確認できないようです。

◎質問者からの返答

ありがとうございます。

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

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


2 ● sight
●100ポイント ベストアンサー

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


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

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

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

と思います。

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


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

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

使います。

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


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

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

◎質問者からの返答

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ