Uno de los problemas más difíciles en mi experiencia de javascript ha sido el cálculo correcto (es decir, el "explorador cruzado") de iframe height. En mis aplicaciones, tengo un gran iframe generado dinámicamente y quiero que todos hagan una especie de aumento de tamaño al final del evento de carga para ajustar su altura y ancho.Calcular una altura de iframe entre exploradores
En el caso de altura computar mi mejor solución es la siguiente (con la ayuda de jQuery):
function getDocumentHeight(doc) {
var mdoc = doc || document;
if (mdoc.compatMode=='CSS1Compat') {
return mdoc.body.offsetHeight;
}
else {
if ($.browser.msie)
return mdoc.body.scrollHeight;
else
return Math.max($(mdoc).height(), $(mdoc.body).height());
}
}
Busqué en Internet sin éxito. También probé la biblioteca de Yahoo que tiene algunos métodos para las dimensiones de documentos y ventanas, pero no es satisfactoria. Mi solución funciona decentemente, pero a veces calcula una altura más alta. he estudiado y un montón de propiedades en cuanto a altura del documento en Firefox/IE/Safari probado: documentElement.clientHeight, documentElement.offsetHeight, documentElement.scrollHeight, body.offsetHeight, body.scrollHeight, ...
también jQuery no tiene un comportamiento coherente en diversas navegador con las llamadas $(document.body).height(), $('html', doc).height(), $(window).height()
que llamar a la función anterior no sólo a el final del evento de carga, pero también en el caso de elementos DOM insertados dinámicamente o elementos ocultos o mostrados. Este es un caso que a veces rompe el código que solo funciona en el evento de carga.
¿Alguien tiene una verdadera solución de navegador cruzado (al menos Firefox/IE/Safari)? Algunos consejos o sugerencias?
Estoy trabajando en este tema ahora. ¿Encontraste una solución? – Shakakai