2011-10-04 18 views
33

Tengo un escenario en el que tengo una página, que tiene la etiqueta <script> y algunas variables javascript globales dentro de esa. También tengo un iframe dentro de esa página y quiero tener acceso a las variables javascript globales de la página en iframe.Compartiendo la variable javascript global de una página con un iframe dentro de esa página

¿Es posible ?, si es así, ¿cómo puedo hacer eso?

+0

proporcionan algunos ejemplos de código para la idea clara .. Gracias –

Respuesta

52

Fácilmente llamando a parent.your_var_name en el script de su iframe.

Una condición: ambas páginas (principal e iframe) deben estar en el mismo dominio.

página principal:

<script> 
var my_var = 'hello world!'; 
</script> 

iframe

<script> 
    function some_fn(){ 
    alert(parent.my_var); //helo world! 
    } 
</script> 
+6

, Me acabo de dar cuenta de lo mal que estoy con javascript: p – Ankit

33

No es posible, si el iframe y el documento principal no están en el mismo dominio (debido a la política de seguridad entre dominios).

Para eludir esta limitación, puede usar la mensajería cruzada.

Posible si si el documento principal está en el mismo dominio, puede acceder a sus variables globales. Hay un objeto que pertenece al objeto ventana del iframe o la página principal.

Aquí está el código para acceder a la variable iframe mivar del documento principal (o un iframe) en un mismo dominio:

document.getElementById('iframeid').contentWindow['myvar']; 
+2

¡Gracias por su tiempo! Por cierto, quería acceder a la variable de página en iframe, me dijiste lo contrario. – Ankit

+5

Todavía bastante útil para ver lo contrario también. – johnbakers

+0

¿Podría aclarar "mensajes de dominio cruzado" en este contexto? –

Cuestiones relacionadas