jQuery中是否更改了$(window).height()和$(document).height()?

时间:2014-05-28 16:59:09

标签: jquery

jQuery文档http://api.jquery.com/height/

// Returns height of browser viewport
$( window ).height();

// Returns height of HTML document
$( document ).height();

但是我从两种方法中得到了相同的值。例如,(html包括溢出的div,高度=约3000px)

$( window ).height();
3588
$( document ).height();
3588
$("body").height();
3572
$("html").height();
3588
window.innerHeight;
667

它在Chrome和Firefox浏览器中都给出了相同的结果。 (由于工具栏的大小不同,该值略有不同。)

我对$( window ).height()的期望是“浏览器视口的高度”,即window.innerHeight = 667。但它给了3588这比我预期的要大得多。

我明白了什么不对吗? viewport意味着什么不同吗?

无论如何,在Find the exact height and width of the viewport in a cross-browser way (no Prototype/jQuery)中,解释了获取视口高度和宽度的方法。在本文档中,“视口”是我的想法,但不是jQuery文档中解释的那个。

===============================================

最近编辑:

当我在计算机中打开脱机html文件时,它只会给出错误的答案3588。当我将html文件上传到我的博客并对其进行测试时,它会给出预期的正确答案667。打开脱机文件(file://)和在线html文件(http://)之间有什么不同吗?

我的测试html文件的简短版本。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

<div style="height:3500px; background:rgb(200,200,255)" id="result"></div>

<script>
$("#result").html("$(window).height():? "+$(window).height());
</script>

它仍然提供

$(window).height():? 3516

仅限离线。

1 个答案:

答案 0 :(得分:0)

我不确定这是一个错误还是行为的预期变化,但你所描述的内容确实发生在较新的jquery版本中。您可以使用     window.innerHeight 代替。 它是跨浏览器(IE 6 +)