Foros del Web » Programando para Internet » Javascript »

onbeforeunload hacer accion cuando oprima aceptar.

Estas en el tema de onbeforeunload hacer accion cuando oprima aceptar. en el foro de Javascript en Foros del Web. hola todos tengo una pagina la cual necesito que al oprimir el boton cerrar, o actualiazr, o simplemente irse para otra pagina, el haga dos ...
  #1 (permalink)  
Antiguo 27/01/2011, 14:48
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 3 meses
Puntos: 4
onbeforeunload hacer accion cuando oprima aceptar.

hola todos
tengo una pagina la cual necesito que al oprimir el boton cerrar, o actualiazr, o simplemente irse para otra pagina, el haga dos cosas

si le da click en aceptar, que se vaya para una pagina determinada,
si le da click en cancelar que no haga nada..
hasta el momento tengo este codigo,
pero aparentemente no fnucinoa el window.location.href, porqe no se va para ningun lado...


Código HTML:
<html>
<script>
window.onbeforeunload = saveBeforeExit; 
function saveBeforeExit()
{
var result=confirm("desea salir sin enviar el mensaje?");
if (result==true)
{
 document.frmIndex.hdnState2.value ='Yes';
  //window.location.href = "http://mipagina.com";
 }
else
{
 document.frmIndex.hdnState2.value ='No';
 //
}
return;
} 
</script>
<body>
<form name="frmIndex">
<input type="hidden" name="hdnState2" value="onloadvalue">
</form>
</body>
</html> 
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #2 (permalink)  
Antiguo 27/01/2011, 15:16
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: onbeforeunload hacer accion cuando oprima aceptar.

esta comentado, así que no hará nada, pero ese código se puede acortar bastante, hazlo así:

Código HTML:
Ver original
  1. window.onbeforeunload = saveBeforeExit;
  2. function saveBeforeExit(){
  3. if (confirm("desea salir sin enviar el mensaje?")) window.location.href = "http://mipagina.com";
  4. return 0;
  5. }
  6. <form name="frmIndex">
  7. <input type="hidden" name="hdnState2" value="onloadvalue">
  8. </form>
  9. </body>
  10. </html>
  #3 (permalink)  
Antiguo 27/01/2011, 15:20
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: onbeforeunload hacer accion cuando oprima aceptar.

yo lo comente
porque sin comentar nohace nada.


y no se puede resumir como lo planteas, ya que saldrian 2 ventanas de alerta,
por eso es el formulario oculto es como un truco para qeu solo salga la ventana de alerta del confirm y no ambos.


igual como me lo envias pasa lo mismo qeu con el codigo que yo puise, no redireccinoa a ningun lado.pareciera que esta prohiubido redireccinoar dentro de este evento

de todos modos gracias por la colaboracion.
de que otra forma se puede hacer?
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #4 (permalink)  
Antiguo 28/01/2011, 09:27
Avatar de Javier01  
Fecha de Ingreso: febrero-2008
Ubicación: Montevideo
Mensajes: 261
Antigüedad: 16 años, 2 meses
Puntos: 31
Respuesta: onbeforeunload hacer accion cuando oprima aceptar.

Es la misma pregunta de un post tuyo creado hace tiempo

http://www.forosdelweb.com/f13/accio...unload-620787/

y como se dice en ese post, no hay forma de evitar que un usuario cierre la ventana!
imagina que cada vez que intento cerrar una ventana
se rediriga a otra, y así sucesivamente!!! nunca podría cerrar las ventanas!!!
Por esa razón no se puede hacer.

la solución mas cercana también esta en ese post:

http://www.forosdelweb.com/f13/accio...7/#post2564287

Saludos!
  #5 (permalink)  
Antiguo 28/01/2011, 11:42
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: onbeforeunload hacer accion cuando oprima aceptar.

Buena aclaración, por cierto lexus, el codigo que te puse hace exactamente lo mismo que el tuyo

javier01 +karma
  #6 (permalink)  
Antiguo 28/01/2011, 13:28
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: onbeforeunload hacer accion cuando oprima aceptar.

es qeu la verdad
estoy haciendo algo para mi intranet, que cuando abandone la pagina, elimine unos regiustros de la base de datos
por tal motivo necesito qeu al salir de la pagina actual, se vaya para otra y ejecute un proceso .

entonces no se con qeu otra opcion hacerlo que nosea con onbeforeunload.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #7 (permalink)  
Antiguo 28/01/2011, 14:23
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: onbeforeunload hacer accion cuando oprima aceptar.

La verdad se entiende perfectamente tu necesidad y es bastante lógica, debe haber una forma, después de todo facebook lo hace, cuando un usuario cierra la página aparece como desconectado del chat, así que si es posible, la pregunta es como...

Yo hasta ahora en casos como esos lo que hago es crear borrados cuando un dato en la base de datos lleva mas de cierto tiempo de ingresado, por ejemplo 2 horas, no se si te pueda servir esa idea.
  #8 (permalink)  
Antiguo 27/04/2011, 17:06
 
Fecha de Ingreso: mayo-2010
Mensajes: 4
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: onbeforeunload hacer accion cuando oprima aceptar.

Compadre, utliza una funcion que llame a la otra pagina mediante ajax, en la linea donde haces el location.href
creo que por ahi puede ser la solucion a tu caso, Yo tambien quiero y llevo tiempo tratando de cerrar la session del usuario cuando cierren el explorador.......

levantate una funcion con ajax y pruebas.....yo voy a hacer esa y si algo te la paso....saludos........si lo haces me la pasas.......

el problema que tengo es que cuando cierran el explorador me queda una sesion abierta consumiendo espacio y memoria.........la idea es que cuando se cierre se cierre todo conexion a BD, sesion todo ese cuento.......

saludos
  #9 (permalink)  
Antiguo 28/04/2011, 07:46
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: onbeforeunload hacer accion cuando oprima aceptar.

exactamente ese es mi problema
necesito tambien cerrar una sesion y hacer unas modificacinoes en la base de datos cuando un usuario cierra el explorador.
no he podido hacerlo aun.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #10 (permalink)  
Antiguo 28/04/2011, 09:18
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: onbeforeunload hacer accion cuando oprima aceptar.

onbeforeunload lo que permite es que el navegador muestre un mensaje antes de cerrar, para cancelar en ultima instancia, ese mensaje es el que recibe con return, una vez que la función termine aparece el mensaje y si el usuario cancela se ejecuta onunload, y en onunload no se puede redireccionar ni usar AJAX porque es cuando se recolectan los objetos y se libera la memoria, conclusión: no se puede hacer lo que pides al cerrar el navegador, es una de las preguntas más comunes en el foro.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Etiquetas: aceptar, cuando, acciones
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 01:02.