2012-06-18 3 views
5

Я хочу получить точную высоту тела окна веб-браузера. Я попробовал innerHeight, clientHeight все другие решения, которые я получаю при поиске в Google. но ни одна из них не дает точной высоты. Я должен был отрегулировать высоту, вычитая некоторое значение с высоты, обеспечиваемой этими функциями? Как можно избавиться от этой проблемы. Кажется, я что-то пропустил. пожалуйста помоги.Как получить точную высоту тела окна веб-браузера?

Благодаря

+0

Будет ли решение jQuery работать для вас? – Dipak

ответ

13

Некоторые браузеры сообщают о высоте окна неверно по-разному - особенно мобильный bro wsers, которые имеют другую концепцию видового экрана. Иногда я использую функцию для проверки нескольких разных значений, возвращающихся в зависимости от того, что больше всего. Например

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

Edit: Я просто смотрел на то, как 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 
    ); 
} 
+0

плюс 1 для простого и * "не-JQuery jQuery solution" *, ha – LinusGeffarth

+1

:) Спасибо. Возможно, бит уже сейчас, но, возможно, все еще действительный/полезный? Не склонны сильно беспокоиться о размерах пикселей браузера/экрана в эти дни - все жидкие, эластичные и «отзывчивые»: | Более CSS3 и медиа-запросы, чем JavaScript/jQuery. –

2

Вы можете использовать Jquery для достижения этой цели ...

$(document).ready(function(){ 
    browserWindowheight = $(window).height(); 
    alert(browserWindowheight); 
}); 
+1

Он никогда не говорил, что использует jquery. – nunespascal

+2

Я упомянул, что он должен использовать jquery ... то почему downvoting ..? – Subhajit

+2

где он говорит, что не хочет использовать jquery? –

1

Вы пытались использовать:

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

Для Internet Explorer с режимом обратной совместимости, используйте

document.body.offsetHeight 

А также, Internet Explorer (режим стандартов, 'CSS1Compat' document.compatMode ==):

document.documentElement.offsetHeight 

Взгляните на следующие для получения дополнительной информации:

Смежные вопросы