如何在没有滚动条的情况下获取浏览器窗口大小

如何在没有滚动条宽度和高度的情况下获取浏览器窗口大小?

当我使用这种方法时,我正在使用滚动条的宽度和高度来提出34。

var $windowW = ($(window).width() - 34); var $windowH = ($(window).height() - 34); alert($windowW + " " + $windowH); // THe results are width 1440 and 745 height $("body").css("width", $windowW); $("body").css("height", $windowH); $("body").css("border","1px solid green"); 

 function getScrollBarDimensions(){ var elm = document.documentElement.offsetHeight ? document.documentElement : document.body, curX = elm.clientWidth, curY = elm.clientHeight, hasScrollX = elm.scrollWidth > curX, hasScrollY = elm.scrollHeight > curY, prev = elm.style.overflow, r = { vertical: 0, horizontal: 0 }; if( !hasScrollY && !hasScrollX ) { return r; } elm.style.overflow = "hidden"; if( hasScrollY ) { r.vertical = elm.clientWidth - curX; } if( hasScrollX ) { r.horizontal = elm.clientHeight - curY; } elm.style.overflow = prev; return r; } 

运行getScrollBarDimensions(); 在这个页面上产生:

 Object horizontal: 0 vertical: 17 

对我来说,谷歌浏览器,IE7,歌剧和Firefox。