Foros del Web » Programando para Internet » Javascript »

Aviso y opcion al intentar cerrar vetana

Estas en el tema de Aviso y opcion al intentar cerrar vetana en el foro de Javascript en Foros del Web. Muy buenas. Creo que esto es posible gracias a Javascript, aunque pongo en duda si fuese necesario alguna característica de PHP para ello. Quiero que ...
  #1 (permalink)  
Antiguo 06/07/2008, 12:59
 
Fecha de Ingreso: julio-2008
Mensajes: 28
Antigüedad: 15 años, 10 meses
Puntos: 0
Aviso y opcion al intentar cerrar vetana

Muy buenas.

Creo que esto es posible gracias a Javascript, aunque pongo en duda si fuese necesario alguna característica de PHP para ello.

Quiero que cuando el usuario intente cerrar la ventana, se le de un aviso advirtiéndole que el proceso X no ha terminado, y se le de la opción de volver al proceso sin recargar pagina mediante la opción cancelar. Algo, como el aviso al intentar salir del redactor de Gmail y de Wordpress.

He intentado con este código, pero sale de la pagina tras el aviso:

Código:
<head>
<title>TEXT</title>
  <SCRIPT language="JavaScript">
<!-- 
function goAway() { 
if (confirm('¿Estás seguro de que quieres abandonar este script?')) 
return true; 
else { 
alert('Adios'); 
// -->

</SCRIPT>
</head>
<body onUnload="goAway()">
TEXT
</body>
</html>
Muchas gracias por adelantado.
PD: He buscado en el FAQ y con el buscador y no he encontrado nada...
  #2 (permalink)  
Antiguo 06/07/2008, 15:43
 
Fecha de Ingreso: marzo-2008
Mensajes: 306
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: Aviso y opcion al intentar cerrar vetana

No estoy seguro, pero puedes probar a usar el evento onBeforeUnload en lugar de onUnload.
__________________
Pop & Rock Bands
Pop Music Stars
  #3 (permalink)  
Antiguo 06/07/2008, 15:59
 
Fecha de Ingreso: julio-2008
Mensajes: 28
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Aviso y opcion al intentar cerrar vetana

Queda el código así, pero sigue sin funcionar...

Código HTML:
<head>
<title>TEXT</title>
  <SCRIPT language="JavaScript">
<!-- 
function goAway() { 
if (confirm('¿Estás seguro de que quieres abandonar este script?')) 
return true; 
else { 
alert('Adios'); 
return false;}} 
// Unhide 
// -->

</SCRIPT>
</head>
<body onBeforeUnload="goAway()">
Texto
</body>
</html> 
Antes se mostraba la ventana javascript después de cerrarse, ahora antes, pero se de a la opción que sea, se sigue cerrando.

Casi esta solucionado, por favor, solo que
  #4 (permalink)  
Antiguo 06/07/2008, 16:09
 
Fecha de Ingreso: marzo-2008
Mensajes: 306
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: Aviso y opcion al intentar cerrar vetana

Creo que el problema es que el return (true o false) de la funcion goAway no le esta llegando al "llamante" de la función.

Prueba con ésto: onBeforeUnload="return goAway();"
__________________
Pop & Rock Bands
Pop Music Stars
  #5 (permalink)  
Antiguo 06/07/2008, 16:17
 
Fecha de Ingreso: julio-2008
Mensajes: 28
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Aviso y opcion al intentar cerrar vetana

Parece que funciona :D ¡¡Muchas gracias!! ;)
  #6 (permalink)  
Antiguo 06/07/2008, 16:21
 
Fecha de Ingreso: marzo-2008
Mensajes: 306
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: Aviso y opcion al intentar cerrar vetana

Me alegro.
Una pregunta, ¿ Con qué navegador lo has probado ? porque yo lo acabo de probar con el Firefox y funciona regular ya que me hace dos preguntas, una en español (la definida en la función goAway) y despues de responder, me pregunta de nuevo pero en inglés.
__________________
Pop & Rock Bands
Pop Music Stars
  #7 (permalink)  
Antiguo 06/07/2008, 16:36
 
Fecha de Ingreso: julio-2008
Mensajes: 28
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Aviso y opcion al intentar cerrar vetana

Si, tambien me di cuenta, pero no me importa porque mi objetivo es evitar que el usuario cierre la ventana, y ello me da tiempo a explicar el motivo.

Otra cosa que querria, es que en caso de que efectivamente se quiera cerrar, se ejecute algun codigo o redireccion, o se den mas avisos. Es posible?
  #8 (permalink)  
Antiguo 06/07/2008, 16:49
 
Fecha de Ingreso: marzo-2008
Mensajes: 306
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: Aviso y opcion al intentar cerrar vetana

Si, en lugar de "alert('Adios')" puedes poner la redirección. Ejemplo:
document.location.href = "http://www.google.com";
__________________
Pop & Rock Bands
Pop Music Stars
  #9 (permalink)  
Antiguo 07/07/2008, 08:53
 
Fecha de Ingreso: julio-2008
Mensajes: 28
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Aviso y opcion al intentar cerrar vetana

Muchas gracias, aunque ahora tengo otro problema respecto esta solucion.

Necesidad: Necesitaba que la pagina se recargase
Problema: Cada vez que se recargaba llamaba goAway() y mostraba el aviso.
Solucion: Hice un marco y la pagina que se recarga es la que esta dentro del marco.

Necesidad: El marco, tras realizarse la tarea, es necesario que desaparezca y que no siga apareciendo la advertencia.
Solucion: Quitar el marco con un javascript.
Problema: Cuando se intenta quitar el marco se muestra el aviso del goAway.

Solucion que he pensado, pero no se como hacer:
1. Cuando la tarea se termine, se crea una cookie mediante la pagina dentro del marco.
2. La pagina dentro del marco ejecuta el codigo javascript para quitar el marco.
3. La pagina que contiene el marco ejecutara la funcion goAway, y esta lee la cookie creada por la pagina del marco. Si el valor es 1, no pregunta y permite automaticamente que se cierre el marco.

Necesito ayuda escribiendo el codigo, ya que no se como leer la cookie con javascript (he mirado FAQs y paginas y no entiendo nada).

¡¡Muchas gracias!!
  #10 (permalink)  
Antiguo 07/07/2008, 09:25
 
Fecha de Ingreso: julio-2008
Mensajes: 28
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Aviso y opcion al intentar cerrar vetana

Estoy intentando con este codigo que he desarrollado, pero no he conseguido hacerlo funcionar...
Código HTML:
<head>
<title>Sistema salas</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
  <SCRIPT language="JavaScript">
<!-- 
function leerCookie(nombre) {
   a = document.cookie.substring(document.cookie.indexOf(nombre + '=') + nombre.length + 1,document.cookie.length);
   if(a.indexOf(';') != -1)a = a.substring(0,a.indexOf(';'))
   return a; 
}
// Hide from old browsers 
function goAway() { 
if (leerCookie(marco) == 1)
{
return true;
}
else {
if (confirm('AVISO: Debes esperar a que la sala se llene. Porfavor, no cierres la ventana.')) 
return true; 
else { 
(!alert("Pulse cancelar despues de este mensaje para no salir"))
return false;}} 
}}
// Unhide 
// -->
</SCRIPT>
</head>
<body onBeforeUnload="return goAway();">
<iframe border="0" src="sala_espera.php" width="100%" height="100%" align="center">

Aviso: Este sistema necesita marcos para funcionar.

</iframe>
</body>
</html> 
Porfavor, ayudadme corrigiendo este codigo para hacerlo funcionar. Gracias.

Última edición por capitanquartz; 07/07/2008 a las 15:44
  #11 (permalink)  
Antiguo 16/08/2008, 03:42
 
Fecha de Ingreso: agosto-2002
Mensajes: 4
Antigüedad: 21 años, 8 meses
Puntos: 0
Respuesta: Aviso y opcion al intentar cerrar vetana

Hola. Prueba con este código de javascript. Un saludo!

Código:
  <SCRIPT language="JavaScript">
<!-- 
function leerCookie(nombre) {
   a = document.cookie.substring(document.cookie.indexOf(nombre + '=') + nombre.length + 1,document.cookie.length);
   if(a.indexOf(';') != -1)a = a.substring(0,a.indexOf(';'))
   return a; 
}
// Hide from old browsers 
function goAway() { 
	var estado = false;
	
	if (leerCookie('marco') != 1)
	{
		if (confirm('AVISO: Debes esperar a que la sala se llene. Porfavor, no cierres la ventana.')) 
			estado = true; 
		else { 
			alert("Pulse cancelar despues de este mensaje para no salir");
			estado =  false;
		}
	} else estado = true;

	return estado;
}
// Unhide 
// -->
</SCRIPT>
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 09:04.