Ejercicio de JavaScript: Acceder a los script de otras ventanas.

10. January 2009 13:18 by Oscar.SS in Desarrollo Web  //  Tags:   //   Comments (1)

El enunciado de este sencillo ejercicio podría ser el siguiente:

Desde una ventana padre abrir una ventana hijo y mostrar en esta el contenido de una cadena definida en el script de la ventana padre. Pasado un retardo de 3 segundos, desde la ventana padre cambiar el contenido de una cadena definida en la ventana hijo y mostrar el contenido en esta ventana.

Creerme que es mucho más fácil de lo que parece por el enunciado. Lo que sucede, muy amenudo, es que es más sencillo ver el código que explicarlo con mil palabras.

Primero voy a mostrar los script con las funciones que realizan estas tareas y luego pasaremos a la explicaciones.

Este es el script que hay que colocar en la ventana primaria o padre:


<script type="text/javascript">

var strPadre "Esta cadena esta definida en la ventana padre.";

var 
nuevaVentana;

function 
abrirVentana()
{
    nuevaVentana 
= window.open("subVentana.html","nuevaVentana","status,height=200,width=300");
    
setTimeout("cambiarVariable()",3000);
}    

function cambiarVariable()
{
    nuevaVentana.strHijo 
"He cambiado la variable de la ventana hijo desde la ventana padre con un ratardo.";
    
nuevaVentana.document.write(nuevaVentana.strHijo);
}

abrirVentana()
;

</script>

Y este es el script de la ventana secundaria:


<script type="text/javascript">

var strHijo;

function 
mostrarCadena()
{
    strHijo 
opener.strPadre;
    window
.document.write(strHijo);
}

mostrarCadena()
;

</script>


Fijemos nuestra atención sobre la función "abrirVentana()". Aquí abrimos la ventana hijo guardando una referencia de la misma en la variable de ámbito global "nuevaVentana". A continuación llamamos con un retraso de 3 segundos a la función "cambiarVariable()".

En la función "cambiarVariable()" nos aprovechamos de que la variable "nuevaVentana" guarda una referencia a la ventana hijo para cambiar el contenido de la variable strHijo que está definida en la ventana hijo.

En el script de la ventana hijo tenemos la función "mostarCadena()", por medio de la propiedad "opener", que contiene una referencia a la ventana que ejecuta la función "window.open()", podemos acceder al contenido de la variable strPadre y mostrarla por pantalla.

Comments (1) -

Eva
Eva
1/29/2009 10:54:38 PM #

Que truco más facil. Wink)

Recent Comments

Comment RSS

Month List