Ver Mensaje Individual
  #14 (permalink)  
Antiguo 15/01/2012, 23:14
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Cerrar popup y refrescar ventana principal

Bueno, trato de resumir (aunque prefier que sobren datos a que falten)
la idea original del usuario era

una ventana principal abierta en el navegador a la que llamaremos
abrepop1.html, y aqui simplifico, apuntando a lo que especificamente es el tema de las ventanas, (había otras cuestiones de por medio con el paso de variables entre formularios), digamos entonces que abrirpop1.html contiene un evento onclick que realiza

Código HTML:
Ver original
  1. <p onclick="window.open('pop1.html','ventanauno','width=200,height=200,scrollbars=no');">pop1</p>

tenemos entonces a pop1.html cargado en esa ventana nueva de nombre "ventanauno", el contenido de este debe tener un link que:
abra un pop2.html en una nueva ventana y a su vez cierre la ventana de nombre "ventanauno", lo cual se hace con

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>pop1</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. </head>
  7.     Este es el pop 1
  8. <a href="#" onclick="abrirpop2();return false;">ir a pop2</a>
  9. <script type="text/javascript">
  10. //<![CDATA[
  11.  
  12. function abrirpop2(){
  13. window.open('pop2.html','ventanados','width=200,height=200,scrollbars=no');
  14. self.close();
  15. }
  16.  
  17. //]]>
  18. </body>
  19. </html>

Ahora este 2 popup cargado en ventanados, debe, tras cierta acción, cerrarse y recargar la página principal, abrirpop1.html (a la cual le paso un parámetro solo al efecto de comprobar que se está recargando).

Es aquí, en este segundo popup, con el primero ya cerrado, donde no encuentro como vincular el target para abrirpop1.html, en la ventana principal del navegador.

Como hacer eso desde el primer pop (ventanauno), se puede hacer con
Código Javascript:
Ver original
  1. self.opener.location = 'abrepop1.html?salir=gracias'

mi propuesta fue, dado que en definitiva al abrir el pop2, se cerraba el uno, y no tenía mucho objeto, no abrir una "ventanados", sino directamente con un link sencillo, cargar el pop2.html en la misma ventana (es decir "ventanauno", que aún está emparentada con la página principal) y que este pop dos hiciera el
self.opener.location = 'abrepop1.html?salir=gracias'
Con eso el problema se resuelve
Pero ahora... ahora me encuentro con tu script.

Detengo mi explicación aquí, porque mientras elaboraba la respuesta estuve jugando con un par de cosas (inspirado por tu indicación de asignarle un name a la ventana principal), y como resultante de eso, encontré una solución mucho mas simple, la cual comparto muy sintéticamente

abrirpop1.html
Código HTML:
Ver original
  1. <script type="text/javascript">
  2. //<![CDATA[
  3. self.name = "ventanaprincipal";
  4. //]]>
  5. </head>
  6. <a href="#" onclick="window.open('pop1.html','ventanauno','width=200,height=200,scrollbars=no'); return false;">pop1</a>
  7. </body>

pop1.html

Código HTML:
Ver original
  1. <script type="text/javascript">
  2. //<![CDATA[
  3. function abrirpop2(){
  4. window.open('pop2.html','ventanados','width=200,height=200,scrollbars=no');
  5. self.close();
  6. }
  7. //]]>
  8. </head>
  9. Este es el pop 1
  10. <a href="#" onclick="abrirpop2();return false;">ir a pop2</a>
  11. </body>

pop2.html

Código HTML:
Ver original
  1. <script type="text/javascript">
  2. //<![CDATA[
  3. function recargarprincipal(){
  4. window.open('abrepop1.html?salir=gracias','ventanaprincipal');
  5. self.close();
  6. }
  7. //]]>
  8. </head>
  9. Este es el pop 2
  10. <a href="#" onclick="recargarprincipal();return false;">Procesar</a>
  11. </body>

el self.name="ventanaprincipal" en abrirpop1.html fue la clave de todo

Gracias por la orientación
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.