¿Hacer que el iframe ajuste automáticamente la altura según el contenido sin usar la barra de desplazamiento? [duplicar]

Resuelto akashbc asked hace 12 años • 16 respuestas

Por ejemplo:

<iframe name="Stack" src="http://stackoverflow.com/" width="740"
        frameborder="0" scrolling="no" id="iframe"> ...
</iframe>

Quiero que pueda ajustar su altura según el contenido que contiene, sin utilizar el desplazamiento.

akashbc avatar Apr 02 '12 18:04 akashbc
Aceptado

Añade esto a tu <head>sección:

<script>
  function resizeIframe(obj) {
    obj.style.height = obj.contentWindow.document.documentElement.scrollHeight + 'px';
  }
</script>

Y cambia tu iframe a esto:

<iframe src="..." frameborder="0" scrolling="no" onload="resizeIframe(this)" />

Como se encuentra en la discusión del punto del sitio .

hjpotter92 avatar Apr 02 '2012 12:04 hjpotter92

Puede usar esta biblioteca, que inicialmente dimensiona correctamente su iframe y también lo mantiene en el tamaño correcto al detectar cada vez que cambia el tamaño del contenido del iframe (ya sea mediante el control regular en a o setIntervalmediante MutationObserver) y cambiar su tamaño.

https://github.com/davidjbradshaw/iframe-resizer

También hay una versión React.

https://github.com/davidjbradshaw/iframe-resizer-react

Esto funciona con iframes tanto cruzados como del mismo dominio.

David Bradshaw avatar Feb 02 '2014 20:02 David Bradshaw

Aquí hay una versión compacta:

<iframe src="hello.html" sandbox="allow-same-origin"
        onload="this.style.height=(this.contentWindow.document.body.scrollHeight+20)+'px';">
</iframe>
Chong Lip Phang avatar Aug 23 '2015 02:08 Chong Lip Phang