2009-07-06 12 views
11

Estoy tratando de obtener la altura total de una página usando JavaScript y jQuery para poder verificar si la página es lo suficientemente larga como para mostrar algo, sin embargo en mis pruebas no puedo obtener la altura total de una página.Altura total de la página

He buscado en Internet, pero cosas como esta no parecen estar bien documentadas, ya que todo lo que puedo encontrar es scrollHeight, que, como podría mencionar, no funciona.

¿Hay alguna forma de usar jQuery para encontrarlo?

Respuesta

31

Sin un marco:

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

¿Has probado $(document).height();?

demostración here

+0

Eso da un error. –

+0

funciona para mí http://pastebin.me/4a52303ca45de - asegúrese de tener abierta la consola firefox + firebug – redsquare

0

Tener un vistazo a la documentation. Uno de los métodos admitidos: height, innerHeight, outerHeight puede ser adecuado para usted.

1

utilizan Tal vez la posición de un elemento en la parte inferior de la página, como:

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

Altura de toda la página ...

document.body.offsetHeight 

Altura de la ventana gráfica ...

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; 

This article puede ayudarlo.

5

document.documentElement.scrollHeight funciona bien para mí en la última versión de Internet Explorer, Chrome, Firefox y Safari.

+0

este es el único que funciona para mí – ekcrisp

+0

scrollHeight le dará el alto de la página incluyendo las cosas que necesita para desplazarse para ver. offsetHeight le dará la altura del área de contenido de la ventana visible. – pelms

+0

y 'offsetHeight' no contiene bordes, márgenes y relleno. –

1

para encontrar la altura de todo el documento usted podría encontrar la más alta nodo DOM de la página actual con un simple recursividad:

;(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: Se está trabajando con Iframes.

¡Disfrútalo!

Cuestiones relacionadas