2010-07-20 72 views
18

根據我在哪個模式的IE8(怪癖或標準),我得到不同的高度和寬度值。我試過標準的JavaScript和jQuery,但都返回不同的結果。獲取網頁的身體或窗口的高度和寬度

怪癖

$('body').width = 1239 
$('body').height = 184 
document.body.clientWidth = 1231 
document.body.clientHeight = 176 

在標準

$('body').width = 1260 
$('body').height = 182 
document.body.clientWidth = 1254 
document.body.clientHeight = 176 

任何想法如何獲得通過IE8的模式不變的值。

謝謝你。

回答

10

也許問題所致。我沒有IE(在Mac上),所以無法驗證。

但是,我可以告訴你什麼在我的項目jQuery Lightbox工作我沒有這樣的問題。我們使用下面的代碼:

// Make the overlay the size of the body 
var $body = $(this.ie6 ? document.body : document); // using document in ie6 causes a crash 
$('#lightbox-overlay').css({ 
width: $body.width(), 
height: $body.height() 
}); 

// ... some code ... 

// Get the window dimensions 
var $window = $(window); 
var wWidth = $window.width(); 
var wHeight = $window.height(); 

並且疊加顯示正確。我相信jQuery的寬度和高度結果與原生結果相比,因爲jQuery自然應該考慮瀏覽器的任何怪癖。

重要的是要注意,由於某種原因,上面的燈箱腳本比$(document.body)更喜歡$(document)--我不記得對不起:O--也許這也解決了這個問題?

7

只是一個quickshot。試着讓你的身體#page:以被包括在寬度和高度的滾動條,無論他們是否是有

function getPageHeight() { 
    var pageHeight = document.getElementById('page').offsetHeight; 
    var pageWidth = document.getElementById('page').offsetWidth; 

    alert(pageHeight); 
    alert(pageWidth); 
} 
+0

仍然沒有運氣。有些東西也很奇怪。 在標準高度= 200左右,怪異約爲800. – 2010-07-20 09:36:27

+0

您能否解釋爲什麼您需要區分ie8中的怪癖和標準模式? – gearsdigital 2010-07-20 09:46:43

+0

我不想但我需要頁面在兩種模式下顯示相同。 – 2010-07-20 10:19:07

2

試試這個:

var viewport = { 
    width : $(window).width(), 
    height : $(window).height() 
}; 

var width = viewport.width; 
var height = viewport.height;