Comunicación de datos con otra ventana ‘window.open’ Javascript

Muchas veces queremos hacer aplicaciones web que comunique información de una ventana a otra. Existen diversos métodos para manejar esta información, como: XML, JSON, TXT, etc. Todo esto lo usamos al manejar llamadas asíncronas. Sin embargo también podemos hacerlo con Javascript a través de un query string. El hecho es que en una ventana hacemos una lógica y en otra ventana manejamos otra de acuerdo a la información enviada, para hacer esto les mostrare un método con Javascript que no es mas ni menos que estar trabajando con el DOM y con nuestros objetos.

PANORAMA

Tenemos dos páginas web que llamaremos paginaPadre.html y paginaHijo.html. La página padre que contiene un botón para abrir la página hijo. La página hijo contendrá Texto y dos elementos con los cuales trabajaremos, un input y un botón. Despues de introducir texto en el input y presionar el boton, se escribirá en un elemento <p> de la página padre el texto que hayamos introducido. Y aquí vamos:

paginaPadre.html

paginaHijo.html

En la página padre lo que hace que se abra nuestra ventana es con esta función que es llamada al presionar el botón de abrir:

Y en la página hijo lo que nos va a permitir comunicarnos con la pagina padre es

La propiedad opener regresa una referencia a la página que la abrió, por lo tanto con esta podemos manderle información generada en la página hijo. Esto quiere decir que los datos que genero en la pagina hijo se puden asignar a elementos de la página padre, es por eso que el valor capturado en el input se lo asigno al <p> de la página padre y despues de hacer esto mando llamar a la funcion close para cerrar la página hijo.

Si estamos trabajando con PHP y la pagina hijo es php, podemos enviar la información de la página padre a través de un query string, lo procesamos y luego asignamos ese valor a un input y lo mostramos en la pagina padre.

Código PHP que procesa un query string

Y lo usamos en nuestra pagina llamada paginaHijo.php

De esta manera es como comunicamos la información entre dos páginas a trabes de document.opene y un query string. Si tienes preguntas o comentarios puedes dejarlos abajo y te puedo ayudar, saludos.