2012-05-13 35 views
16

我试图获取当前浏览器窗口的高度,使用

$(window).on('resize',function() { 
    console.log("new height is: "+$(window).height()); 
}); 

但我发现了那个实在是太值低。当视口高度大约为850像素时,我会从高度()获取大约350或400像素的值。这是怎么回事?

例子:http://jsfiddle.net/forgetcolor/SVqx9/

+3

为了澄清 - 你得到这些错误_in jsFiddle_,或在正常的浏览器上下文中? jsFiddle使用iFrame,所以窗口不会是整个窗口,只是更小的框架。 – nrabinowitz

+0

在一个正常的浏览器,而不是一个iframe。 – mix

+0

你需要一个非jsFiddle的例子,然后 - jsFiddle总是会在这里给你不好的数字。 – nrabinowitz

回答

9

一个可能的原因可能是你正在检查与萤火虫/别的控制台。因此,由于萤火虫高度,您无法获得正确的窗口高度。

你可以尝试这样的事情:

采取跨度/每格在您记录:

<span id="res"></span> 

然后

$(window).on('resize',function() { 
    $('#res').html("new height is: "+$(window).height()); 
}); 

或者,如果你想看看穿上萤火然后将其从浏览器中分离出来,然后检查结果。

+0

这是一个非常非常好的提示。在Chrome浏览器窗口打开的情况下,我遇到了这个问题。 –

2

无重放。请记住,窗口高度会因浏览器chrome中的项目而减少,例如地址栏,开发人员工具,书签工具栏等等。以下内容显示了视口高度的精确表示:

jsbin会给你一个相当不错的窗口高度估计,因为它不会像其他js测试站点那样将代码输出限制为小型iframe作为jsfiddle。

http://jsbin.com/otaqej/edit#javascript,html

<!DOCTYPE html> 
<html> 
    <head> 
    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.js"></script> 
    </head> 
    <body> 
    <div id="message">Height: 0</div> 
    <script> 
     $(window).on("resize", function(){ 
     $("#message").html("Height: " + $(window).height()); 
     }); 
    </script> 
    </body> 
</html> 
+0

jsbin在IE9中无法正常工作吗?然而,它在Firefox中运行良好。 – Hoque

+0

@Hoque Remy Sharp,JSBin的创建者,已经在IE的更高版本中进行了广泛的测试。如果您有任何问题可以详细说明,请在Twitter上告诉他:[@rem](https://twitter.com/#!/rem)。 – Sampson

1

的jsfiddle通过创建渲染代码之后被动态加载的。

您的JavaScript正在计算窗口的高度,恰好是的高度,对我而言高度大约为400px。

您的代码正在做它应该做的。

30

我在Firefox遇到同样的问题,然后在索引中添加了<!DOCTYPE HTML>,它工作正常。

来源:http://viralpatel.net/blogs/jquery-window-height-incorrect/

+8

你刚刚救了我的一天:D! – Kaz

+0

当您在文档中稍后声明了doctype时,这也是这种情况,当我们将CSRF元标记添加到页面并且$(window).height()返回了在doctype声明之前插入的错误值时,它弹出。 –

+0

哦,伙计......在这里也保存了我的一天!一切都是......当我推到我的升级环境中时,情况截然不同,我真的很担心。 –

2

对于上述方案后,谁仍然有问题...

请检查浏览器的视野率到您的project.html ..

值$(窗口)。当视图比例调整时,height()与客户区域的“真实”像素不同。 (等其他$(XX).WIDTH()......在这种情况下)

(该浏览器记住我的粗心110%比率日前调整...)

+0

也看着ozzysong的回复[链接](http://stackoverflow.com/a/23320757/233545)在另一个相同的问题 –

相关问题