2009-03-31 14 views
7

Duplicar posibles:
Resizing an iframe based on contentiframe cambio de tamaño para adaptarse a su contenido

tengo un iframe en el que el src es un archivo HTML y este marco flotante se coloca dentro de usercontrol:

<iframe frameborder="0" src="CName.htm" align="left" width="730" height="1100" ></iframe> 

Necesito el iframe para cambiar el tamaño de acuerdo con el contenido para que su altura se establece de acuerdo con la h es decir, del archivo HTML y no necesito usar el atributo de desplazamiento. ¿Tiene alguna idea?

+0

Consulte http://stackoverflow.com/questions/153152/resizing-an-iframe-based-on-content –

+1

Esa respuesta vinculada está irremediablemente desactualizada, consulte https://github.com/davidjbradshaw/iframe- resizer para una solución mucho más simple. – user2684310

Respuesta

0

Puede calcular el alto y el ancho del contenido dentro del marco y luego llamar a una función que está en el propietario del marco para establecer el alto y el ancho del elemento iframe.

+3

Esto solo funcionará si el iframe y su elemento primario no infringen la política de origen idéntico. – nickh

0

¡Hay una manera! Está en jquery y es demasiado simple. Un poco hacky ..

$('iframe').contents().find('body').css({"min-height": "100", "overflow" : "hidden"}); 
setInterval("$('iframe').height($('iframe').contents().find('body').height() + 20)", 1); 

¡Ya lo tiene!

¡Salud! :)

+0

¿Para qué es el '+ 20'? –

19

He utilizado el siguiente código de jQuery para hacer esto:

$('#iframe_id').load(function() { 
    $(this).height($(this).contents().height()); 
    $(this).width($(this).contents().width()); 
}); 

no creo que esto va a funcionar si el contenido de iframe son varios dominios, sin embargo.

+0

Para realizar un dominio cruzado, debe usar la API postMessage para esto, también debe verificar los eventos de cambio de tamaño de la ventana y las mutaciones DOM, para que el iFrame se mantenga del tamaño del contenido. Echa un vistazo a esta lib que se encarga de todo esto por ti. https://github.com/davidjbradshaw/iframe-resizer –

Cuestiones relacionadas