cambiar dinámicamente el tamaño de la altura del iframe según el contenido dinámico

Primero, les daré la estructura de mi página:

<html>
<body>
    <div>
    <iframe>
        <div id="div1">
        </div>
    </iframe>
    </div>
</body>
</html>

Si tan solo supiera de antemano el tamaño de div1, no hay problema aquí. Sin embargo, estoy agregando contenidos dinámicamente en div1 usando jquery ajax, por lo que no pude preestablecer el <iframe>altura.

Probé las soluciones que encontré en otros hilos agregando un script en el onload de los <iframe> pero es inútil ya que los contenidos cambian dinámicamente sin recargar la página.

¿Alguna ayuda?

preguntado el 31 de julio de 12 a las 13:07

dado que está cambiando el contenido de div1, ¿puede calcular la altura de div1 después de cada cambio y luego cambiar la altura del iframe?

Incluso si puedo calcular la altura de div1, ¿cómo cambiaría la altura del iframe? No puedo hacerlo con jquery simple y no quiero profundizar tanto en javascript complejo. -

¿Dónde está el código que cambia el contenido/está en el iframe o en el padre? -

@Huangism No sé si esto es lo que buscas, pero el código que cambia el contenido es una llamada ajax. Algo como $('div').html(data) en la función de éxito de $.ajax. -

¿Es ajax en la página principal o en la página iframe src? -

2 Respuestas

En su página secundaria, después de que el código generado dinámicamente haya terminado de cargarse, inserte este código:

// Rsize containing iframe to proper height
parent.parent.resizeIframe($('html').height());

Luego, en la página principal, incluye esta función:

function resizeIframe(newHgt)
{
    $('#iframeid').height((parseInt(newHgt)+75)+'px');
}

Esto lo llevará a donde necesita estar, pero el problema que estoy tratando de resolver es cómo determinar el tamaño del contenido del iframe. después de el código generado dinámicamente ha terminado de cargarse... "todo desde la página principal".

De todos modos, espero que esto te ayude.

...

Respondido 05 Jul 13, 18:07

Deberías abrir una pregunta para tu problema. - Danilo

Debería mencionar que esto no funciona cuando la política del mismo origen está en vigor. - hitautodestruct

No estoy seguro de por qué quieres usar un iframe aquí. Pero tal vez puedas intentar usar

http://sonspring.com/journal/jquery-iframe-sizing

Respondido 31 Jul 12, 19:07

De hecho, ya he usado ese script y no resolvió mi problema. Ahora estoy rediseñando mi aplicación para deshacerme de la iframe. Me había hecho perder mucho tiempo arreglando muchas cosas. Gracias a todas sus respuestas. - muerte cerebral

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.