获取网页的正文或窗口的高度和宽度

时间:2010-07-20 08:57:12

标签: javascript jquery html

根据我所处的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模式保持值不变。

先谢谢。

3 个答案:

答案 0 :(得分: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)优于$(document.body) - 我不记得抱歉:O - 所以也许这也解决了这个问题?< / p>

答案 1 :(得分:7)

只是一个快照。试着给你的身体#page:

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

    alert(pageHeight);
    alert(pageWidth);
}

答案 2 :(得分:2)

试试这个:

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

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