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