Estoy tratando de cambiar el tamaño (hacer más grande o más pequeño) un iframe en función de su contenido. Después de hacer clic en cada página, se llama a un método que cambia el tamaño.cambio de tamaño de iframe con scrollheight en cromo/safari
En Chrome puedo hacer que el iframe sea más grande, pero no más pequeño. document.body.scrollHeight es siempre el mayor valor.
Así que si una página grande establece # iframe.height = '620px', y alguien hace clic en un enlace a la página con menos contenido scrollHeight se mantendrá en 620px en lugar de disminuir.
¿Cuál es la forma correcta de manejar esto en Chrome/Safari?
Brillante! ¡He estado peleando con esto por días! –
Si alguien más se encuentra con esto, lo que lo solucionó fue configurar 'document.body.scrollHeight' para Firefox, y 'document.documentElement.scrollHeight' para Chrome y cualquier otra cosa ... Mi ejemplo usa postMessage para dominio cruzado 'if (isFirefox) { \t \t \t \t e.source.postMessage ('height:' + document.body.scrollHeight, e.origin); \t \t \t} else { \t \t \t \t e.source.postMessage ('altura:' + document.documentElement.scrollHeight, e.origin); \t \t \t} ' – nitsuj
Gracias por esta respuesta, he incluido en mi biblioteca iFrame https://github.com/davidjbradshaw/iframe-resizer –