¿Es posible leer/editar contenidos de marcos (no solo propiedades como src) con scripts que están en la página pero fuera de este marco? Sé que es imposible si la fuente es de otro sitio, ya que sería un gran agujero de seguridad, pero solo pregunto si funciona para otro contenido del mismo origen.Javascript e mismo origen iframes
Respuesta
si el iframe-contenido es del mismo dominio puede acceder a él mediante el uso de frames.myiframe.getElement...
El navegador sólo restringe el acceso a los contenidos/matrices de marco flotante en el contenido que no es del mismo dominio. Para solicitudes desde el mismo dominio, puede acceder al contenido a través del window.parent
o por myiframe.document.getElementById
Sí, puede hacerlo si la ubicación del iframe y la página principal son del mismo host (misma política de origen).
Para asegurar el navegador va a dejar de hacer esto, puede utilizar
document.domain = "example.com"
en la página principal y en el marco flotante. (Nótese que subdomain.example.com y example.com son diferentes)
método para hacer esto Dom (página padre a iframe):
document.getElementById("myiframe").contentWindow.document.getElementById("divinframe").innerHTML = "I'm on the inside.";
document.getElementById("myiframe").contentWindow.someFunctionInsideIframe();
contentWindow es la respuesta y funciona en la mayoría si no en todos los navegadores modernos, sin duda Chrome, ie7 + etc.
Para ir por el otro camino (iframe a la página principal):
top.document.getElementById("DivInTopParent")
Para añadir a lo que ya se ha dicho acerca de la interacción con los marcos flotantes cargados desde el mismo dominio:
El navegador le permitirá interactuar con los marcos flotantes (o marcos), siempre y cuando la página que se está tratando para hacer la interacción y la página que ha cargado tiene el mismo document.domain.
Puede establecer el document.domain con un sufijo del host desde el que se cargó. p.ej. si usted tiene una página cargada desde blog.fred.com y quiere interactuar con algún servicio llamado jsonservice.fred.com, ambas páginas tendrán que hacer
document.domain = 'fred.com';
antes de Javascript de uno será capaz de interactuar con el otro.
Los navegadores son lo suficientemente inteligentes como para no permitir al usuario configurar la document.domain a '.com', en caso de que se preguntan ...
Esto no es exactamente un/javascript solución del lado del cliente, pero me ayudó a resolver el problema
Es necesario eliminar la cabecera X-Frame-Options
, si está presente, y en lugar de enviar la siguiente una para la página iframe:
Content-Security-Policy: frame-ancestors 'self' example.com *.example.com
y adicional una para IE:
X-Content-Security-Policy: frame-ancestors 'self' example.com *.example.com
- 1. ¿Los marcos e iframes tienen contextos javascript aislados?
- 2. iframes HTML y javascript
- 3. Windows Forms Control e iframes de WebBrowser
- 4. Seguridad XSS. Comunicación entre 2 iframes del mismo dominio
- 5. jQuery e iframes y posicionamiento extraño: ¿hay alguna solución?
- 6. Cruz iframes sub dominio y JavaScript
- 7. HTML iframes heredan css y JavaScript datos
- 8. Iframes y gestión de memoria en Javascript
- 9. es javascript multihilo posible con IFRAMEs
- 10. JavaScript para detectar si el marco principal es del mismo origen?
- 11. iFrames problemas de impresión
- 12. ¿Cómo se imprimen iframes?
- 13. OpenID y Iframes
- 14. Diseño de widgets. ¿Qué es mejor: IFrames o Javascript?
- 15. Solución de política del mismo origen que utiliza document.domain en Javascript
- 16. ¿Es iframes una idea terrible?
- 17. ¿Por qué AJAX sobre iFrames?
- 18. xHTML 1.0 strict - Validate iFrames
- 19. Dualidad cuántica: ¿variable es nula e indefinida al mismo tiempo?
- 20. iFrames y la Ley
- 21. ¿body.onload espera por IFrames?
- 22. Iframes no funciona
- 23. iframes vs Ajax
- 24. ¿Están IFrames (HTML) obsoletos?
- 25. iFrames + Google Analytics + Cookies + P3P
- 26. Política de mismo origen en términos de Layman
- 27. política del mismo origen - API públicas AJAX y utilizando
- 28. Deshabilitar la política del mismo origen en Safari
- 29. HTML5 Canvas getImageData y política de mismo origen
- 30. Objetos en JavaScript definidos e indefinidos al mismo tiempo (en una extensión de FireFox)
Creo que este enlace dice todo [Scripting Iframes - Tutorial y ejemplos] (http://www.dyn-web.com/tutorials/iframes/) – mplungjan