Общая высота страницы

Я пытаюсь получить общую высоту страницы с помощью JavaScript, чтобы я мог проверить, достаточно ли длинна страница для отображения чего-либо, однако в ходе моего тестирования я не смог определить общую высоту страницы.

Я смотрел в Интернете, но подобные вещи, похоже, недостаточно хорошо документированы, поскольку все, что я могу найти, - это scrollHeight, который, как я мог бы упомянуть, не работает.

Любой способ использовать JavaScript, чтобы найти его?

Ответ 1

Без рамки:

var _docHeight = (document.height !== undefined) ? document.height : document.body.offsetHeight;
var _docWidth = (document.width !== undefined) ? document.width : document.body.offsetWidth;

Ответ 2

document.documentElement.scrollHeight работает нормально для меня в последней версии Internet Explorer, Chrome, Firefox и Safari.

Ответ 3

Вы пробовали $(document).height();?

Демо здесь

Ответ 4

Высота всей страницы...

document.body.offsetHeight

Высота области просмотра...

var h,
de = document.documentElement;

if (self.innerHeight) {h = window.innerHeight;}
else if (de && de.clientHeight) {h = de.clientHeight;}
else if (document.body) {h = document.body.clientHeight;}

Эта статья может вам помочь.

Ответ 5

Возможно, используйте положение элемента в нижней части страницы, например:

$("#footer").offset().top

Ответ 6

Чтобы найти высоту всего документа, вы можете просто найти самый высокий DOM Node на текущей странице с простой рекурсией:

;(function() {
    var pageHeight = 0;

    function findHighestNode(nodesList) {
        for (var i = nodesList.length - 1; i >= 0; i--) {
            if (nodesList[i].scrollHeight && nodesList[i].clientHeight) {
                var elHeight = Math.max(nodesList[i].scrollHeight, nodesList[i].clientHeight);
                pageHeight = Math.max(elHeight, pageHeight);
            }
            if (nodesList[i].childNodes.length) findHighestNode(nodesList[i].childNodes);
        }
    }

    findHighestNode(document.documentElement.childNodes);

    // The entire page height is found
    console.log('Page height is', pageHeight);
})();

ПРИМЕЧАНИЕ. Он работает с Iframes.

Наслаждайтесь!

Ответ 7

Посмотрите документация. Один из поддерживаемых методов: высота, innerHeight, outerHeight могут быть вам пригодны.