Altezza totale della pagina

Sto cercando di ottenere l’altezza totale di una pagina utilizzando JavaScript e jQuery in modo da poter verificare se la pagina è abbastanza lunga da visualizzare qualcosa, tuttavia nel mio test non riesco a ottenere l’altezza totale di una pagina.

Mi sono guardato intorno su Internet ma cose come questa non sembrano essere ben documentate, dato che tutto quello che posso trovare è scrollHeight , che, come posso menzionare, non funziona.

Qualche modo di usare jQuery per trovarlo?

Senza un quadro:

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

Hai provato $(document).height(); ?

Demo qui

document.documentElement.scrollHeight funziona correttamente per me nell’ultima versione di Internet Explorer, Chrome, Firefox e Safari.

Altezza di tutta la pagina …

 document.body.offsetHeight 

Altezza del viewport …

 var h; if(self.innerHeight) h = window.innerHeight else if(document.documentElement && document.documentElement.clientHeight) h = document.documentElement.clientHeight; else if(document.body) h= document.body.clientHeight; 

Questo articolo può aiutarti.

Forse usa la posizione di un elemento in fondo alla pagina, come:

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

Per trovare l’ altezza dell’intero documento, è ansible trovare il nodo DOM più alto nella pagina corrente con una semplice ricorsione:

 ;(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); })(); 

NOTA: Funziona con Iframes .

Godere!

Dai un’occhiata alla documentazione . Uno dei metodi supportati: altezza, innerHeight, outerHeight può essere adatto a te.