Pregunta

Estoy usando jQuery 1.3.2.

Tengo problemas para obtener la " altura " correcta " en Internet Explorer 6. Los valores de altura son correctos en todos los demás navegadores.

También estoy usando wresize jQuery plugin .

Cada vez que se carga el navegador, disparo un método que cambia el tamaño de divs, iframes basados ??en las dimensiones del navegador. (Hay una buena razón para esto).

El valor devuelto de $ ('body'). height (), en IE 6, parece agregar 10 píxeles después de cada cambio de tamaño del navegador.

¿Alguien más ha encontrado algo como esto?

var iframeH = 0, h = 0, groupH = 0, adjust = 0;

var tableH = $("#" + gridId + "_DXHeaderTable").parent().height();
var pagerH = $(".dxgvPagerBottomPanel").height();
var groupHeight = $(".dxgvGroupPanel").height();

if (pagerH == null)
    pagerH = 0;

if (groupHeight != null)
    groupH = groupHeight + pagerH;

iframeH = $('body').height();
h = (iframeH - (tableH + pagerH + groupH));

$('#' + gridId + "Panel").css("height", (h + "px"));
$("#" + gridId + "_DXMainTable").parent().css("height", (h + "px"));

Este código es para establecer la altura de una cuadrícula DevExpress en su contenedor primario. Ignora el hecho de que el código podría ser mejor. :)

¿Hay algo más que " cuerpo " ¿Que podría usar para conseguirme el tamaño correcto? He probado el objeto de ventana ($ (window) .height ()), pero eso no parece ayudar mucho.

¡Cualquier pensamiento es apreciado!

¿Fue útil?

Solución

Es más probable que el problema al que te enfrentas sea una diferencia de representación de CSS. Debido a los problemas flotantes, el relleno y las diferencias de representación de margen entre los navegadores.

intente obtener $ (" body "). innerHeight () y $ (" body "). outerHeight () y compárelos en diferentes navegadores, Obtendrás algunos resultados comunes. En el peor de los casos, es posible que necesite ejecutar algunos si casos

Otros consejos

Claro, aquí hay un par de ideas:

Con IE, y esp. IE antiguo, me gusta agregar una declaración de setTimeout de 1 a 10 ms alrededor de mis funciones de representación de altura: le da a dom e IE la oportunidad de " relajarse "

Además, asegúrate de que las cosas estén visibles en la página; para esto, es posible que tengas que eliminarlas temporalmente de la pantalla usando la posición absoluta y luego volver a mostrarlas en la pantalla.

Otra cosa es que la altura () a veces es torpe. Pruebe .css ('altura') para recuperar alturas [también es más rápido] y elimine el 'px' para lo que es a veces una medida más verdadera.

o use un Dimensions para jQuery que le brinda mucho más para trabajar y es navegador cruzado.

Utilizo este complemento para dibujar líneas de un elemento arrastrable a un droppable como lo muestro aquí

$('body').height(); // call this first

iframeH = $('body').height(); //then try this
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top