jquery $(window).height()がドキュメントの高さを返しています


104

私が行っている単純なエラーがあると確信していますが、私は単に警告$(window).height()していて、と同じ値を返します$(document).height()

私は13インチのMBAを使用しており、ブラウザのウィンドウの高さを780px-820px(おおよそ)で最大化すると、ドキュメントの高さと同じウィンドウの高さが返されます。サイトで私が取り組んでいるのは、 1000px以上。

ここで何が起こっているのですか?

alert($(window).height());
alert($(document).height()); 

どのブラウザで作業していますか?
カニシカパナマルデニヤ2012

この問題はjquery-1.8.0で発生し始め、古いバージョンのjqueryはこれを正しく実行しました(DOCTYPEが設定されていなくても)
ralhei

回答:


245

doctypeタグがない場合、Chromeは両方の呼び出しで同じ値を報告します。

厳格なdoctypeなどを追加する<!DOCTYPE html>と、値が宣伝どおりに機能します。

doctypeタグは、でなければならない非常にあなたの文書の最初のもの。たとえば、何もレンダリングしなくても、その前にテキストを置くことはできません。


11
FireFoxは、<!DOCTYPE HTML>のような厳密なdoctypeを使用しない限り、このレポートも実行します
Tom Chiverton '29

また、不正なdoctypeは、$(window).height()がドキュメントの高さを返すのと同じ理由で、Twitterブートストラップscrollspyが奇妙に動作するようにします。
nidheeshdas 2013年

3
私の場合は、HTMLの前Response.Writeに出力していたASPサイトでコードの背後にありました1。したがって、私のドキュメントタイプは適切でしたが、技術的にはページの最初のものではありませんでした。
James

1
同じ問題がありますが、doctypeは正しく宣言されています:(
bia.migueis

1
" doctypeタグは、ドキュメントの最初のタグでなければなりません。たとえば、何もレンダリングしなくても、その前にphpコードを置くことはできません。 "これはどうしてでしょうか?ブラウザーはサーバーが実行しているものを認識せず、HTMLマークアップを含むテキストファイルのみを受け取ります。ApacheではなくIISを実行している場合はどうなりますか?ブラウザはサーバーが何をしているかを気にしません。
Sablefoste

24

同じ問題があり、これを使用して解決しました。

var w = window.innerWidth;
var h = window.innerHeight;

1
奇妙なことに、私は適切なdoctypeも使用しています。あなたの内側の高さが私の問題を解決しました!ありがとう
Martijn van Hoof

1
同じ問題-有効なdoctypeとすべてがありました。ややクロスプラットフォーム: var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; var h = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
メラニージョンソン2017

本当に問題を修正しています(そして、はい、私はdoctypeを持っています-各ページの最初のものです)
hillcode

1

あなたの文書は、その内容を表示するためにウィンドウに十分なスペースを持っている必要があると思う つまり、ドキュメントのこれ以上の部分を表示するために下にスクロールする必要はありません。その場合、ドキュメントの高さはウィンドウの高さと等しくなります。


ドキュメントは、すべてのページでウィンドウの下部の下に拡張されます。
Fraser

0

これに対する質問と回答は次のとおり です。screen.availHeightとwindow.height()の違い

写真もあるので、実際に違いがわかります。お役に立てれば。

基本的に$(window).height()は、ブラウザーウィンドウ(ビューポート)内の最大の高さを$(document).height()提供し、ブラウザー内のドキュメントの高さを提供します。ほとんどの場合、スクロールバーがあってもまったく同じです。


0

Webページjquery(window)でDoctypeを使用すると、実際に機能し、ビューポートの高さを返します。それ以外の場合は、完全なドキュメントの高さを返します。

Webページの上部に次のタグを定義します。 <!DOCTYPE html>


このタグをWebページの上部で使用します。<!DOCTYPE html>
Gourav Yadav
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.