jquery $ (ventana) .height () devuelve la altura del documento


104

Estoy seguro de que estoy cometiendo un error simple, pero simplemente estoy alertando $(window).height()y devuelve el mismo valor que $(document).height().

Estoy en un MBA de 13 "y la altura de la ventana de mis navegadores cuando se maximiza entre 780px - 820px (aproximadamente), pero cada vez devuelve una altura de ventana idéntica a la altura del documento. En todos los casos en el sitio en el que estoy trabajando es más de 1000px.

¿Que esta pasando aqui?

alert($(window).height());
alert($(document).height()); 

¿En qué navegador estás trabajando?
Kanishka Panamaldeniya

Este problema comenzó a aparecer con jquery-1.8.0, las versiones anteriores de jquery lo hicieron correctamente (incluso sin el conjunto DOCTYPE)
ralhei

Respuestas:


245

Sin doctypeetiqueta, Chrome informa el mismo valor para ambas llamadas.

Agregar un tipo de documento estricto como <!DOCTYPE html>hace que los valores funcionen como se anuncia.

La doctypeetiqueta debe ser la muy primera hora de su documento. Por ejemplo, no puede tener ningún texto antes, incluso si no representa nada.


11
FireFox también realiza este informe a menos que use un tipo de documento estricto como <! DOCTYPE HTML>
Tom Chiverton

Además, el tipo de documento incorrecto hace que twitter bootstrap scrollspy actúe de manera extraña por la misma razón que $ (window) .height () devuelve la altura del documento.
nidheeshdas

3
En mi caso, tenía un Response.Writeen mi código detrás en un sitio ASP que estaba generando un 1antes de cualquier HTML. Así que mi tipo de documento era correcto, pero técnicamente no era lo primero en la página.
James

1
tengo el mismo problema pero el tipo de documento se declara correctamente :(
bia.migueis

1
" La etiqueta doctype debe ser lo primero en su documento. Por ejemplo, no puede tener ningún código php antes, incluso si no representa nada " . ¿Cómo puede ser esto posible? El navegador no sabe qué está ejecutando el servidor, solo recibe un archivo de texto con marcado HTML. ¿Qué sucede si está ejecutando IIS y no Apache? Al navegador no le importa lo que esté haciendo el servidor.
Sablefoste

24

Tuve el mismo problema, y ​​usarlo lo resolvió.

var w = window.innerWidth;
var h = window.innerHeight;

1
tan extraño, también estoy usando el tipo de documento adecuado. tu altura interior solucionó mi problema! Gracias
Martijn van Hoof

1
El mismo problema: tenía un tipo de documento válido y todo. Un poco más multiplataforma: var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; var h = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
melanie johnson

realmente solucionando el problema (y sí, tengo un tipo de documento, lo primero en cada página)
hillcode

1

Creo que su documento debe tener suficiente espacio en la ventana para mostrar su contenido. Eso significa que no es necesario desplazarse hacia abajo para ver más partes del documento. En ese caso, la altura del documento sería igual a la altura de la ventana.


El documento se extiende por debajo de la parte inferior de la ventana en cada página.
Fraser

0

Aquí hay una pregunta y una respuesta para esto: Diferencia entre screen.availHeight y window.height ()

También tiene fotos, por lo que puedes ver las diferencias. Espero que esto ayude.

Básicamente, le $(window).height()da la altura máxima dentro de la ventana del navegador (ventana gráfica) y $(document).height()le da la altura del documento dentro del navegador. La mayoría de las veces, serán exactamente iguales, incluso con barras de desplazamiento.


0

Realmente funciona si usamos Doctype en nuestra página web. Jquery (ventana) devolverá la altura de la ventana gráfica; de lo contrario, devolverá la altura completa del documento.

Defina la siguiente etiqueta en la parte superior de su página web: <!DOCTYPE html>


use esta etiqueta en la parte superior de su página web: <! DOCTYPE html>
Gourav Yadav
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.