Foros del Web » Programando para Internet » Jquery »

jquery: llamada a funcion xajax con .unload no funciona

Estas en el tema de jquery: llamada a funcion xajax con .unload no funciona en el foro de Jquery en Foros del Web. Hola, intento utilizar el evento .unload para cuando el usuario cierre la ventana de chat, se haga un UPDATE en la base de datos, lo ...
  #1 (permalink)  
Antiguo 16/04/2010, 12:00
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 9 meses
Puntos: 5
Pregunta jquery: llamada a funcion xajax con .unload no funciona

Hola, intento utilizar el evento .unload para cuando el usuario cierre la ventana de chat, se haga un UPDATE en la base de datos, lo hago con el siguiente codigo js:

Código:
$(window).unload( function() {xajax_AccionRetirarEntrenador();})
Pero no funciona...
en cambio pongo un alert('hola'); en el evento y si lo hace.

¿Es que no da tiempo a ejecutarse la funcion?
Entonces como lo resuelvo?

Muchas gracias!
__________________
http://www.pkmrpg.es
  #2 (permalink)  
Antiguo 17/04/2010, 10:33
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 9 meses
Puntos: 5
Respuesta: jquery: llamada a funcion xajax con .unload no funciona

Nadie sabe?
__________________
http://www.pkmrpg.es
  #3 (permalink)  
Antiguo 17/04/2010, 11:38
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 6 meses
Puntos: 65
Respuesta: jquery: llamada a funcion xajax con .unload no funciona

creo que si querés enviar algo a una url no vas a poder porque se cierra la ventana, debería ser antes de que se cierre la ventana con "onbeforeunload"

window.onbeforeunload = xajax_AccionRetirarEntrenador;
function xajax_AccionRetirarEntrenador(){
location.href = "url.php";
};


con jquery para que tenga ese envento no sé que había que hacer
  #4 (permalink)  
Antiguo 18/04/2010, 05:05
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 9 meses
Puntos: 5
Respuesta: jquery: llamada a funcion xajax con .unload no funciona

Hola Dany_s gracias por responder, pruebo con:

$(window).bind('beforeunload', function() {xajax_AccionRetirarEntrenador();});

Pero la consola de errores me dice que "xajax is not defined" y me indica el archivo "xajax_core.php", algo que no entiendo, porque en el mismo .js tengo otras llamadas a funciones xajax y no me dice lo mismo...

Este es el archivo completo:
Código:
$(document).ready( function ()
{
	AccionMostrarJugadores(false);
	AccionMostrarMensajes(false, true);
})

$(window).bind('beforeunload', function() {xajax_AccionRetirarEntrenador();});

setInterval("AccionMostrarMensajes(false, false)", 10000);

/*----
	Mostrar jugadores
----*/
function AccionMostrarJugadores(canal)
{
	$("#bloque_carga").show();
	$(".carga").attr({disabled: "disabled"});

	if (canal== false)
		var canal = $("#canal_id").attr("value");
	xajax_AccionMostrarJugadores(canal);

}

/*----
	Mostrar mensajes
----*/
function AccionMostrarMensajes(canal, bienvenida)
{
	$("#bloque_carga").show();
	$(".carga").attr({disabled: "disabled"});

	if (canal== false)
		var canal = $("#canal_id").attr("value");
	xajax_AccionMostrarMensajes(canal, bienvenida);

}

/*----
	Enviar mensaje
----*/
function AccionEnviarMensaje(canal)
{
	var mensaje = $('#zona_mensaje').attr('value');
	if (mensaje!= "")
	{
		$("#bloque_carga").show();
		$(".carga").attr({disabled: "disabled"});

		xajax_AccionEnviarMensaje(canal, mensaje);
	
		//Bloqueamos zona de mensaje durante 3 segundos para evitar el flood
		$("#boton_mensaje").attr({disabled: "disabled", value: "Espera 3 segundos..", className: "deshabilitado"});
		$("#zona_mensaje").attr({value: ""});
		setTimeout("AccionDesbloquearMensaje()", 3000);
	}
}

/*----
	Insertar emoticono
----*/
function AccionInsertarEmoticono(emoticono)
{
	$("#bloque_carga").show();
	$(".carga").attr({disabled: "disabled"});

	var codigo_emoticono = "["+emoticono+"]";
	var mensaje_texto = $('#zona_mensaje').attr('value');
	var mensaje = mensaje_texto + codigo_emoticono
	$('#zona_mensaje').attr({value: mensaje});
}

/*----
	Desbloquear mensaje
----*/
function AccionDesbloquearMensaje()
{
	$("#boton_mensaje").attr({disabled: "", value: "Enviar", className: ""});
}
¿Que hay mal?

Gracias!"
__________________
http://www.pkmrpg.es
  #5 (permalink)  
Antiguo 18/04/2010, 05:11
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 9 meses
Puntos: 5
Respuesta: jquery: llamada a funcion xajax con .unload no funciona

Ahora he probado a no usar jquery, usando

window.onbeforeunload = xajax_AccionRetirarEntrenador;

y ahora me dice que "xajax_AccionRetirarEntrenador is not defined" cuando no es asi... lo raro esque intento usar otras funciones que se que van bien y me dice lo mismo, ponga la funcion que ponga, me dice que no esta definida..
__________________
http://www.pkmrpg.es
  #6 (permalink)  
Antiguo 21/04/2010, 15:07
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 9 meses
Puntos: 5
Respuesta: jquery: llamada a funcion xajax con .unload no funciona

Alguien podria ayudarme?

Gracias
__________________
http://www.pkmrpg.es
  #7 (permalink)  
Antiguo 24/04/2010, 15:51
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 9 meses
Puntos: 5
Respuesta: jquery: llamada a funcion xajax con .unload no funciona

Alguien tiene alguna solucion?

Como detectar que el usuario va a cerrar la ventana y poder llamar una funcion xajax antes y con tiempo para que se realize?

Gracias
__________________
http://www.pkmrpg.es
  #8 (permalink)  
Antiguo 24/04/2010, 17:07
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 3 meses
Puntos: 101
Respuesta: jquery: llamada a funcion xajax con .unload no funciona

Probaste onUnload sin jquery? Es decir, desde javascript?
  #9 (permalink)  
Antiguo 24/04/2010, 17:40
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 9 meses
Puntos: 5
Respuesta: jquery: llamada a funcion xajax con .unload no funciona

Si, y lo mismo..
__________________
http://www.pkmrpg.es
  #10 (permalink)  
Antiguo 27/04/2010, 11:53
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 9 meses
Puntos: 5
Respuesta: jquery: llamada a funcion xajax con .unload no funciona

¿Alguien sabe la solucion?

gracias!
__________________
http://www.pkmrpg.es
  #11 (permalink)  
Antiguo 03/05/2010, 14:57
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 9 meses
Puntos: 5
Respuesta: jquery: llamada a funcion xajax con .unload no funciona

Sigo con el mismo problema..

¿Alguna solucion para llamar una funcion xajax antes de que el usuario cierre la ventana y de tiempo a que se realize?

Gracias
__________________
http://www.pkmrpg.es
  #12 (permalink)  
Antiguo 04/05/2010, 04:30
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 6 meses
Puntos: 65
Respuesta: jquery: llamada a funcion xajax con .unload no funciona

y viendo el código fuente podés ver la esa función?

probaste esa función en un evento onclick?


nunca use xajax asi que no se como funciona

porqué no haces que vaya a una url retirar.php?id=x con location ? de que sirve ajax en un onbeforeunload ?

Última edición por Dany_s; 04/05/2010 a las 04:51
  #13 (permalink)  
Antiguo 04/05/2010, 07:20
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 9 meses
Puntos: 5
Respuesta: jquery: llamada a funcion xajax con .unload no funciona

Ostia gracias por la idea de ir a una pagina en la ventana padre

Es lo mas simple pero funciona gracias! xD
__________________
http://www.pkmrpg.es

Etiquetas: funcion, llamada, unload, xajax
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 23:08.