2012-05-13 43 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)在另一個相同的問題 –

相關問題