使用JavaScript获取浏览器窗口宽度/高度的最有效方法是什么?

时间:2010-11-08 18:28:07

标签: javascript browser cross-browser robustness

我正在使用follownig条件,但它们不能跨浏览器工作,或者根本不用:

if (typeof (window.innerHeight) == 'number') {
    //Non-IE:
    //Perform operation using window.innerWidth/Height
} else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
    //IE 6+ in 'standards compliant mode'
    //Perform operation using document.documentElement.clientWidth/Height
} else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
    //IE 4 compatible
    //Perform operation using document.body.clientWidth/Height
}

我相信我错过了一两个条件 - 也许还有另一个我没有考虑过的常见表达。

我需要添加什么才能完成此操作?

2 个答案:

答案 0 :(得分:1)

在您的网页中加入jQuery并使用$(window).width()$(window).height()

答案 1 :(得分:0)

最好将整个逻辑包装到一个函数中,因此您只需要说getWindowHeight()

// cross browser window height
function getWindowHeight() {
  return window.innerHeight || 
         (document.documentElement && document.documentElement.clientHeight) || 
         (document.body && document.body.clientHeight);
}

Tested:IE5.5 +,FF 2 +,Chrome,Opera

但是对于更强大的方法,请访问相关的comp.lang.javascript常见问题解答条目:
How do I find the size of the window?