javascript: размер окна и страницы сайта
Функция возвращает размеры рабочей области окна и размеры загруженной страницы сайта:
function getPageSize(){ var xScroll, yScroll, pageWidth, pageHeight, windowWidth, windowHeight; if (window.innerHeight && window.scrollMaxY) { xScroll = document.body.scrollWidth; yScroll = window.innerHeight + window.scrollMaxY; } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac xScroll = document.body.scrollWidth; yScroll = document.body.scrollHeight; } else if (document.documentElement && document.documentElement.scrollHeight > document.documentElement.offsetHeight){ // Explorer 6 strict mode xScroll = document.documentElement.scrollWidth; yScroll = document.documentElement.scrollHeight; } else { // Explorer Mac...would also work in Mozilla and Safari xScroll = document.body.offsetWidth; yScroll = document.body.offsetHeight; } if (self.innerHeight) { // all except Explorer windowWidth = self.innerWidth; windowHeight = self.innerHeight; } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode windowWidth = document.documentElement.clientWidth; windowHeight = document.documentElement.clientHeight; } else if (document.body) { // other Explorers windowWidth = document.body.clientWidth; windowHeight = document.body.clientHeight; } // for small pages with total height less then height of the viewport if(yScroll < windowHeight){ pageHeight = windowHeight; } else { pageHeight = yScroll; } // for small pages with total width less then width of the viewport if(xScroll < windowWidth){ pageWidth = windowWidth; } else { pageWidth = xScroll; } return [pageWidth,pageHeight,windowWidth,windowHeight]; }
Источник: http://www.jstoolbox.com/skripty/raznoe/poluchenie-razmera-stranicy/
Использование — в примере alert, когда высота страницы больше высоты рабочей области окна, т.е. есть вертикальная полоса прокрутки:
перед закрытием body
<script type="text/javascript"> var ps=getPageSize(); if (ps[1]>ps[3]) { alert(">"); } </script>
Я решал эту проблему, ИМХО, проще:
window.getW_H= {
W: (!window.opera)? _K.body().clientWidth: (_K.G().parentWindow || _K.G().defaultView).innerWidth ,
Hsait: (!window.opera)? _K.body().clientHeight:(_K.G().parentWindow || _K.G().defaultView).innerHeight,
/* && !window.opera (_K.G().parentWindow || _K.G().defaultView).innerHeight */
H: window.screen.availHeight
}