根据我所处的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模式获得一个不变的值。
在adv中谢谢。
发布于 2010-07-20 17:44:43
也许这个问题是由于滚动条被包含在宽度和高度中,而不管它们是否存在。我没有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自然应该考虑到浏览器的任何怪癖。
值得注意的是,由于某些原因,上面的lightbox脚本倾向于使用$(document)
而不是$(document.body)
--我不记得对不起:O --所以也许这也解决了这个问题?
发布于 2010-07-20 17:31:12
只是一个快速拍摄。试着给你的身体#页:
function getPageHeight() {
var pageHeight = document.getElementById('page').offsetHeight;
var pageWidth = document.getElementById('page').offsetWidth;
alert(pageHeight);
alert(pageWidth);
}
发布于 2013-01-09 15:30:52
试试这个:
var viewport = {
width : $(window).width(),
height : $(window).height()
};
var width = viewport.width;
var height = viewport.height;
https://stackoverflow.com/questions/3288397
复制相似问题