Главная > Javascript > javascript: размер окна и страницы сайта

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>
Categories: Javascript Tags:
  1. KorniloFF
    Октябрь 28th,2013 в 04:42 | #1

    Я решал эту проблему, ИМХО, проще:
    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
    }

Похожие публикации