Размеры документа - это кошмар совместимости с браузером, потому что, хотя все браузеры выставляют свойства clientHeight и scrollHeight, они не все согласны с тем, как вычисляются значения.
Раньше была сложная формула лучшей практики вокруг, как вы проверили правильную высоту / ширину. Это связано с использованием свойств document.documentElement, если они доступны или возвращаются к свойствам документа и т. Д.
Самый простой способ получить правильную высоту - получить все значения высоты, найденные в документе или documentElement, и использовать самую высокую. Это в основном то, что делает jQuery:
var body = document.body,
html = document.documentElement;
var height = Math.max( body.scrollHeight, body.offsetHeight,
html.clientHeight, html.scrollHeight, html.offsetHeight );
Быстрый тест с Firebug + jQuery bookmarklet возвращает правильную высоту для обеих цитируемых страниц, а также пример кода.
Обратите внимание, что тестирование высоты документа до готовности документа всегда приведет к 0. Кроме того, если вы загрузите больше вещей или измените размер окна, вам может потребоваться повторная проверка. Используйте onload
или document ready , если вам это нужно во время загрузки, в противном случае просто проверьте, когда вам нужен номер.