5

我想获得 webbrowser 窗口主体的确切高度。我尝试了在谷歌搜索时获得的所有其他解决方案的 innerHeight、clientHeight。但他们都没有给出确切的高度。我必须通过从这些函数提供的高度中减去一些值来调整高度?怎样才能摆脱这个问题。我想我错过了一些东西。请帮忙。

谢谢

4

3 回答 3

15

一些浏览器以不同的方式错误地报告窗口高度- 特别是具有不同视口概念的移动浏览器。我有时使用一个函数来检查几个不同的值,返回最大的那个。例如

function documentHeight() {
    return Math.max(
        window.innerHeight,
        document.body.offsetHeight,
        document.documentElement.clientHeight
    );
}

编辑:我只是看看 jQuery 是如何做到的,它确实使用了 Math.max 和一系列属性 - 但是它检查的列表与我上面的示例中的列表略有不同,因为我通常相信 jQuery 团队会更好在这件事上比我更;这是非 jQuery jQuery 解决方案(如果有意义的话):

function documentHeight() {
    return Math.max(
        document.documentElement.clientHeight,
        document.body.scrollHeight,
        document.documentElement.scrollHeight,
        document.body.offsetHeight,
        document.documentElement.offsetHeight
    );
}
于 2012-06-18T06:17:58.343 回答
2

您可以使用 Jquery 来实现这一点...

$(document).ready(function(){
    browserWindowheight = $(window).height();
    alert(browserWindowheight);
});
于 2012-06-18T05:50:46.593 回答
1

您是否尝试过使用:

window.outerHeight (this is for IE9 and other modern browser's height)

对于具有向后兼容模式的 Internet Explorer,请使用

document.body.offsetHeight 

此外,Internet Explorer(标准模式,document.compatMode=='CSS1Compat'):

document.documentElement.offsetHeight 

请查看以下内容以获取更多信息:

于 2012-06-18T05:53:44.063 回答