Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Cerrar ventana con setTimeout

Estas en el tema de Cerrar ventana con setTimeout en el foro de Javascript en Foros del Web. Hola! La idea es simple: dar clic en un <a> y cerrar la ventana transcurridos unos segundos: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original < ...
  #1 (permalink)  
Antiguo 23/07/2014, 19:57
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 1 mes
Puntos: 22
Pregunta Cerrar ventana con setTimeout

Hola!

La idea es simple: dar clic en un <a> y cerrar la ventana transcurridos unos segundos:
Código Javascript:
Ver original
  1. <a href="#n" onclick="setTimeout(self.close(), 2000);">Cerrar esta ventana</a>

Esto cierra la ventana inmediatamente, sin esperar los 2s.

¿Cómo hacemos para que se cierre después de x segundos?



Saludos!




Nota: En la red existen muchos lugares que tratan este problema, y todas las respuestas se basan en la idea de abrir una ventana con window.open y luego cerrarla con un miVentana.close(). En mi caso, no me sirve tal cosa, porque la ventana que necesito cerrar no es abierta mediante javascript.
  #2 (permalink)  
Antiguo 23/07/2014, 20:03
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.551
Antigüedad: 12 años, 4 meses
Puntos: 977
Respuesta: Cerrar ventana con setTimeout

Inténtalo con una función anónima.

Código HTML:
Ver original
  1. <a href="#n" onclick="setTimeout(function(){self.close();}, 2000);">Cerrar esta ventana</a>

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 23/07/2014, 22:26
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 1 mes
Puntos: 22
Respuesta: Cerrar ventana con setTimeout

Cita:
Iniciado por Alexis88 Ver Mensaje
Inténtalo con una función anónima...
Qué onda, profesor!

Pues no, eh! La cosa no funciona. Transcurridos los 2 segundos, el inspeccionador de Chrome muestra el mensaje: "Los scripts sólo pueden cerrar las ventanas que fueron abiertas por ellos".

Alguna otra idea?
  #4 (permalink)  
Antiguo 24/07/2014, 01:22
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.551
Antigüedad: 12 años, 4 meses
Puntos: 977
Respuesta: Cerrar ventana con setTimeout

Ahora que leo mejor (y todo ) lo que escribiste, me surgió una duda con respecto a esto:

Cita:
Iniciado por berkeleyPunk Ver Mensaje
la ventana que necesito cerrar no es abierta mediante javascript.
¿Cómo abres esa ventana?

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 24/07/2014, 05:06
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 17 años, 3 meses
Puntos: 56
Respuesta: Cerrar ventana con setTimeout

@berkeleyPunk Exactamente le mensaje te quiere decir que las ventanas solo se pueden cerrar con esa función siempre y cuando se hallan abierto por acciones de los usuarios con Javascript, por ejemplo popups o nuevas pestañas abiertas a partir de la página principal.
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */

Última edición por America|UNK; 24/07/2014 a las 05:12
  #6 (permalink)  
Antiguo 24/07/2014, 07:31
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 1 mes
Puntos: 22
Pregunta Respuesta: Cerrar ventana con setTimeout

Cita:
Iniciado por Alexis88 Ver Mensaje
...¿Cómo abres esa ventana?...
No sé, por ejemplo, escribiendo en la barra de direcciones la URL, o bien dando clic a un link en un sitio y me lleve a la página en cuestión.

America|UNK, gracias por responder. Precisamente por lo que comentas, fue que inicialmente puse la notilla (que el maestro Alexis88 no leyó ) de que no me sirven los scripts que pululan en la red acerca de la posibilidad de cerrar la ventana actual, siempre y cuando haya sido abierta previamente con window.open.

----------------------

Más exactamente: tengo una página de descarga de un archivo zip, y que una vez que el usuario descargue el archivo, se cierre la ventana. Para esto, lo que se me ocurrió es poner un setTimeout de 2s al link de descarga, con la esperanza de que hubiera tiempo de que se abriera el cuadro de diálogo para guardar el archivo y luego se cerrara la ventana.

Saludos!
  #7 (permalink)  
Antiguo 28/07/2014, 20:45
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 1 mes
Puntos: 22
Sonrisa Respuesta: Cerrar ventana con setTimeout

Por todo lo que he visto estos últimos días, lo que pretendo hacer es imposible. No se puede cerrar una ventana tal como deseo si la ventana no fue abierta previamente con javascript .


Hasta luego.
  #8 (permalink)  
Antiguo 29/07/2014, 00:55
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.551
Antigüedad: 12 años, 4 meses
Puntos: 977
Respuesta: Cerrar ventana con setTimeout

¿Y no has pensado en abrir esa ventana de descarga con JavaScript? Por ejemplo, para imprimir documentos, creo una nueva ventana, le añado el contenido, la imprimo e indico que una vez impresa la página, se cierre la nueva ventana, pienso que podrías hacerlo igual.

Código Javascript:
Ver original
  1. var nueva = window.open();
  2. nueva.document.body.innerHTML = "Hola mundo";
  3. nueva.print();
  4. nueva.close();

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #9 (permalink)  
Antiguo 29/07/2014, 21:41
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 1 mes
Puntos: 22
Sonrisa Respuesta: Cerrar ventana con setTimeout

Cita:
Iniciado por Alexis88 Ver Mensaje
¿Y no has pensado en abrir esa ventana de descarga con JavaScript?...
Desgraciadamente eso no se puede, maestro.

La página de descarga de la que hablo es abierta por PayPal una vez que alguien realiza un pago.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:28.