Tengo una aplicación que me gustaría para incrustar dentro de nuestras sociedades CMS. La única forma de hacerlo (me dicen) es cargarlo en un .<iframe> - ¿Cómo mostrar toda la altura de la página hace referencia?
fácil: basta con establecer height
y width
-100%
! Excepto, no funciona.
Lo que encontrar a cabo acerca de la configuración frameborder
a 0
, por lo que al menos se ve como parte del sitio, pero preferiría no tener una barra de desplazamiento en el interior fea una página que tiene ya fuiste uno.
¿Conoce algún truco para hacer esto?
EDIT: Creo que necesito aclarar mi pregunta un tanto:
- la empresa CMS muestra la pelusa y material para toda nuestra página web
- mayoría de las páginas creadas a través del CMS
- mi solicitud no lo es, pero me dejarán incrustarlo en un
- No tengo control sobre el
iframe
, por lo que cualquier solución debe funcionar desde la página referenciada (según elsrc
atributo de la etiquetaiframe
) - el CMS muestra un pie de página, por lo que establecer la altura de 1 millón de píxeles no es una buena idea
¿Puedo acceder a las páginas de padres DOM de la página de referencia? Esto podría ayudar, pero puedo ver que algunas personas no quieren que esto sea posible ...
Esta técnica parece funcionar (gleaned de varias fuentes, pero inspirado en el link de la respuesta aceptada:
En documento de nivel superior:
<iframe id="MyIFRAME" name="MyIFRAME"
src="http://localhost/child.html"
scrolling="auto" width="100%" frameborder="0">
no iframes supported...
</iframe>
En niños:
<!-- ... -->
<body>
<script type="text/javascript">
function resizeIframe() {
var docHeight;
if (typeof document.height != 'undefined') {
docHeight = document.height;
}
else if (document.compatMode && document.compatMode != 'BackCompat') {
docHeight = document.documentElement.scrollHeight;
}
else if (document.body
&& typeof document.body.scrollHeight != 'undefined') {
docHeight = document.body.scrollHeight;
}
// magic number: suppress generation of scrollbars...
docHeight += 20;
parent.document.getElementById('MyIFRAME').style.height = docHeight + "px";
}
parent.document.getElementById('MyIFRAME').onload = resizeIframe;
parent.window.onresize = resizeIframe;
</script>
</body>
Por cierto: Esto solo funcionará si el padre y el hijo están en el mismo dominio debido a una restricción en JavaScript por razones de seguridad ...
No puedo creer que este enlace solo se haya aceptado y votado varias veces ... –