Tengo iframe (dominio cruzado) con src de facebook, twitter o etc. Necesito obtener la altura del iframe, pero tengo un problema: "Permiso denegado para acceder a la propiedad 'documento'". Por favor ayúdame a resolver esto. ¡Muchas gracias!Cómo obtener la altura del iframe dominio cruzado
Respuesta
Problemas con la pareja. En primer lugar, es probable que la altura del iframe
no sea la que desea. Me refiero a que está establecido explícitamente en el código HTML de la página que controlas y es fácilmente accesible y modificable a través de cualquier medio de Javascript. Lo que parece que buscas es el alto de la página dentro de el iframe. Si ese es el caso, la respuesta simple es que no se puede, al menos no con servicios externos como Facebook/Twitter.
Por razones de seguridad, uno puede pasar fácilmente mensajes de hijo a padre, pero no de padre a hijo, a menos que se haya incorporado una vía de comunicación en su javascript en ambos documentos. Hay un protocolo postMessage
para manejar esto en los navegadores modernos. https://developer.mozilla.org/en/DOM/window.postMessage. Pero es totalmente inútil en este caso, a menos que el documento con el que se está comunicando esté configurado para manejar un postMessage entrante, que a mi conocimiento, con frecuencia, Twitter/Facebook no lo es.
Si un documento principal puede comunicarse libremente con los niños de diferentes dominios, entonces cualquier javascript podría ejecutar con eficacia cualquier serie de comandos en cualquier sitio que haya iniciado sesión como. Las implicaciones de seguridad de eso son aterradoras y afortunadamente no es posible.
No hay opciones en javascript para encontrar el alto de una altura de iframe de dominios cruzados, pero puede hacer algo como esto con la ayuda de alguna programación del lado del servidor. Usé PHP para este ejemplo
<?php
$output = file_get_contents('http://yourdomain.com');
?>
<div id='iframediv'>
<?php echo $output; ?>
</div>
<iframe style='display:none' id='iframe' src="http://yourdomain.com" width="100%" marginwidth="0" height="100%" marginheight="0" align="top" scrolling="auto" frameborder="0" hspace="0" vspace="0"> </iframe>
<script>
if(window.attachEvent) {
window.attachEvent('onload', iframeResizer);
} else {
if(window.onload) {
var curronload = window.onload;
var newonload = function(evt) {
curronload(evt);
iframeResizer(evt);
};
window.onload = newonload;
} else {
window.onload = iframeResizer;
}
}
function iframeResizer(){
var result = document.getElementById("iframediv").offsetHeight;
document.getElementById("iframe").style.height = result;
document.getElementById("iframediv").style.display = 'none';
document.getElementById("iframe").style.display = 'inline';
}
</script>
- 1. iframe altura dinámica dominio cruzado usando jquery.ba-postmessage
- 2. Emisión de iframe de dominio cruzado
- 3. Obtener iframe url de src actual en el dominio cruzado
- 4. SWFobject dentro de iFrame: ¿cosas del dominio cruzado?
- 5. Detectar cuando el iframe tiene dominio cruzado, luego reventarlo
- 6. Altura dinámica del iframe
- 7. Detección de carga de contenido de iframe de dominio cruzado
- 8. Obtener la altura del iframe con una URL externa
- 9. Sesiones PHP de dominio cruzado
- 10. problema con la altura del iframe
- 11. jQuery que ajusta la altura del iframe
- 12. ¿Cómo usar el iframe para la solicitud de correo (de dominio cruzado)?
- 13. Controlar la altura del iframe con jQuery
- 14. Inconsistencia de altura del botón (navegador cruzado)
- 15. localhost :: dominio cruzado ajax
- 16. Cookies de dominio cruzado
- 17. ¿Cómo cambiar la altura del iframe en función del contenido dinámico dentro del iframe?
- 18. Detectar el cambio de altura del contenido del marco iframe
- 19. ¿El subdominio se considera de dominio cruzado?
- 20. JQuery dominio cruzado auth call
- 21. Html5 - Mensaje cruzado del iframe del navegador cruzado - ¿hijo a padre?
- 22. Obtener altura de página en JS (Navegador cruzado)
- 23. AJAX llamada de dominio cruzado
- 24. jquery autenticación de dominio cruzado
- 25. Calcular una altura de iframe entre exploradores
- 26. cookies de dominio cruzado Rails 3
- 27. Dominio cruzado AJAX del servicio REST encabezados HTTP
- 28. ¿Qué puede hacer exactamente un IFrame con el objeto top.Location (dominio cruzado)?
- 29. cómo habilitar la POST-ing de dominio cruzado en PHP?
- 30. SCRIPT5: Acceso denegado. Fancybox iFrame. Mismo dominio