Ответ 1
Без рамки:
var _docHeight = (document.height !== undefined) ? document.height : document.body.offsetHeight;
var _docWidth = (document.width !== undefined) ? document.width : document.body.offsetWidth;
Я пытаюсь получить общую высоту страницы с помощью JavaScript, чтобы я мог проверить, достаточно ли длинна страница для отображения чего-либо, однако в ходе моего тестирования я не смог определить общую высоту страницы.
Я смотрел в Интернете, но подобные вещи, похоже, недостаточно хорошо документированы, поскольку все, что я могу найти, - это scrollHeight
, который, как я мог бы упомянуть, не работает.
Любой способ использовать JavaScript, чтобы найти его?
Без рамки:
var _docHeight = (document.height !== undefined) ? document.height : document.body.offsetHeight;
var _docWidth = (document.width !== undefined) ? document.width : document.body.offsetWidth;
document.documentElement.scrollHeight
работает нормально для меня в последней версии Internet Explorer, Chrome, Firefox и Safari.
Вы пробовали $(document).height();
?
Демо здесь
Высота всей страницы...
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;}
Эта статья может вам помочь.
Возможно, используйте положение элемента в нижней части страницы, например:
$("#footer").offset().top
Чтобы найти высоту всего документа, вы можете просто найти самый высокий 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
.
Наслаждайтесь!
Посмотрите документация. Один из поддерживаемых методов: высота, innerHeight, outerHeight могут быть вам пригодны.