Foros del Web » Programando para Internet » Javascript »

Mensaje al Cerrar Ventana

Estas en el tema de Mensaje al Cerrar Ventana en el foro de Javascript en Foros del Web. Holas: Tengo una duda, es que quisiera saber como puedo hacer para que con algún script de javascript al presionar el botón X del browser ...
  #1 (permalink)  
Antiguo 10/08/2004, 17:58
Avatar de mixba  
Fecha de Ingreso: noviembre-2003
Ubicación: CPU (Interior)
Mensajes: 116
Antigüedad: 20 años, 6 meses
Puntos: 0
Pregunta Mensaje al Cerrar Ventana

Holas:

Tengo una duda, es que quisiera saber como puedo hacer para que con algún script de javascript al presionar el botón X del browser aparezca un mensaje de advertencia que el usuario se quiere ir de esa web saliendo un cartelito de windows y darle la opción acéptar o cancelar

gracias

adios

MixBA
  #2 (permalink)  
Antiguo 10/08/2004, 22:17
 
Fecha de Ingreso: abril-2004
Ubicación: México D.F.
Mensajes: 1.724
Antigüedad: 20 años
Puntos: 4
en el body agregar onUnLoad="nombre_funcion()", es un manejador de eventos que te indica o se dispara cuando se dispone el usuario a salir de la página, Lo que no se es como cancelarlo, ya que al dispararse no hay vuelta de hoja solamente volviendo a cargar la página.
  #3 (permalink)  
Antiguo 11/08/2004, 11:03
Avatar de mixba  
Fecha de Ingreso: noviembre-2003
Ubicación: CPU (Interior)
Mensajes: 116
Antigüedad: 20 años, 6 meses
Puntos: 0
bien, solucionado

gracias
  #4 (permalink)  
Antiguo 11/08/2004, 17:41
Avatar de martinArgentino  
Fecha de Ingreso: diciembre-2002
Mensajes: 157
Antigüedad: 21 años, 4 meses
Puntos: 1
Tené cuidado con el evento onUnload, pues el código javascript que en este manejador de eventos escribas, tambien se ejecutará en los siguientes casos:

Al hacer click en un linck de la pagina
Al refrescar la pagina.
Al escribir una url en la barra de direcciones.

Con esta función podes hacer que solo muestre el mensaje en el caso en que cierre la ventana, pero lamentablemente solo funca para IE. Es mas estoy buscando algo que tambien funcione para Netscape y Mozilla.

function ExitSite(e) {
width=515;
height=225;
if (navigator.appName.indexOf("Microsoft")>=0){
e=event;
var tempX = e.clientX + document.body.scrollLeft;
var tempY = e.clientY + document.body.scrollTop;
if(tempX<0&&tempY<0){
OpenCenteredPopup('popup.asp','popWin',width,heigh t,'toolbar=0, location=0, directories=0, status=0, menuBar=0, scrollBars=0, resizable=0','')
}
}else{
//nose Netscape u otros
}
return true;
}
}


Saludos
__________________
Martin
  #5 (permalink)  
Antiguo 11/08/2004, 18:59
 
Fecha de Ingreso: enero-2004
Ubicación: MALAGA
Mensajes: 11
Antigüedad: 20 años, 4 meses
Puntos: 0
La verdad es que yo llevo bastante tiempo liado con esto y si encontraras una buena solucion para NE estaria muy bien.
  #6 (permalink)  
Antiguo 11/08/2004, 23:06
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Duda

hola tengo una duda como aplico esa funciona en mi pagina porque la puse entre las cabeceras de mi pagina dentro de las etiquetas de javascript y me marca errores, como debo poner la funcion en mi pagina a otra cosa, con tu funcion usando unload solo ese evento funciona en mozilla o netscape pero en ie seria onBeforeUnload
__________________
gerardo

Última edición por chalchis; 11/08/2004 a las 23:07 Razón: ortografia
  #7 (permalink)  
Antiguo 12/08/2004, 07:20
Avatar de martinArgentino  
Fecha de Ingreso: diciembre-2002
Mensajes: 157
Antigüedad: 21 años, 4 meses
Puntos: 1
Perdón, lo que pasa es que hay una llamada a una función que no la puse, de todos modos podrías reemplazarla por window.open(..... ,y si no esta es la funcón que faltaba.


function OpenCenteredPopup(page,title,width,height,options, fixed)
{
//correct size for the popup
var popupWidth;
var popupHeight;
var popupTop;
var popupLeft;

if (fixed=='yes') {

if (width==0)
popupWidth = screen.width - 100;
else
popupWidth = width;
if (height==0)
popupHeight = screen.height - 100;
else
popupHeight = height;

} else {

if (width==0)
popupWidth = screen.width - 100;
else
popupWidth = screen.width * width / 800
if (height==0)
popupHeight = screen.height - 100;
else
popupHeight = screen.height * height / 600

}

//center the popup
var screenX;
var screenY;

screenY = screen.availHeight;
screenX = screen.availWidth;

popupLeft = (screenX - popupWidth) / 2;
popupTop = (screenY - popupHeight) / 2;
if (navigator.appName.indexOf("Microsoft")<0) {
popupLeft = (popupLeft - pageXOffset);
popupTop = (popupTop - pageYOffset);
}
if (popupTop<0) popupTop=0;
if (popupLeft<0) popupLeft=0;

//opens the popup
if (navigator.appName.indexOf("Microsoft")>=0)
{
if (options != '') options+=',';
options+='width='+popupWidth+',height='+popupHeigh t+',left='+ popupLeft +',top='+popupTop;
}
else
{
if (options != '') options+=',';
options+='width='+popupWidth+',height='+popupHeigh t+',screenX='+ popupLeft +',screenY='+popupTop;
}
floater=window.open(page,title,options);
floater.focus();
}
__________________
Martin
  #8 (permalink)  
Antiguo 12/08/2004, 07:36
Avatar de martinArgentino  
Fecha de Ingreso: diciembre-2002
Mensajes: 157
Antigüedad: 21 años, 4 meses
Puntos: 1
mangui:

Aqui hay algo que funca (mas o menos feo) para netscape. La idea es que se siga la posición del mouse al hacer click en el botón cerrar, pues cuando ello suceda la posición de e.pageY debería ser 0 pues se encuentra fuera de document.

No es una solución, pero por ahi te da alguna idea y entre amobos sacamos algo.


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<script>

function OpenCenteredPopup(page,title,width,height,options, fixed)
{
//correct size for the popup
var popupWidth;
var popupHeight;
var popupTop;
var popupLeft;

if (fixed=='yes') {

if (width==0)
popupWidth = screen.width - 100;
else
popupWidth = width;
if (height==0)
popupHeight = screen.height - 100;
else
popupHeight = height;

} else {

if (width==0)
popupWidth = screen.width - 100;
else
popupWidth = screen.width * width / 800
if (height==0)
popupHeight = screen.height - 100;
else
popupHeight = screen.height * height / 600

}

//center the popup
var screenX;
var screenY;

screenY = screen.availHeight;
screenX = screen.availWidth;

popupLeft = (screenX - popupWidth) / 2;
popupTop = (screenY - popupHeight) / 2;
if (navigator.appName.indexOf("Microsoft")<0) {
popupLeft = (popupLeft - pageXOffset);
popupTop = (popupTop - pageYOffset);
}
if (popupTop<0) popupTop=0;
if (popupLeft<0) popupLeft=0;

//opens the popup
if (navigator.appName.indexOf("Microsoft")>=0)
{
if (options != '') options+=',';
options+='width='+popupWidth+',height='+popupHeigh t+',left='+ popupLeft +',top='+popupTop;
}
else
{
if (options != '') options+=',';
options+='width='+popupWidth+',height='+popupHeigh t+',screenX='+ popupLeft +',screenY='+popupTop;
}
floater=window.open(page,title,options);
floater.focus();
}



var pX=1;
var pY=1;

function ExitSite(e) {
width=515;
height=225;
if (navigator.appName.indexOf("Microsoft")>=0){
e=event;
var tempX = e.clientX + document.body.scrollLeft;
var tempY = e.clientY + document.body.scrollTop;
if(tempX<0&&tempY<0){
OpenCenteredPopup('popup.asp','popWin',width,heigh t,'toolbar=0, location=0, directories=0, status=0, menuBar=0, scrollBars=0, resizable=0','')
}
}else{
if(pY<20){
OpenCenteredPopup('popup.asp','popWin',width,heigh t,'toolbar=0, location=0, directories=0, status=0, menuBar=0, scrollBars=0, resizable=0','')
}
return true;
}
}

function mouseMove(e) {
pX = (navigator.appName.indexOf("Microsoft")>=0)? event.x+document.body.scrollLeft: e.pageX ;
pY = (navigator.appName.indexOf("Microsoft")>=0)? event.y+document.body.scrollTop: e.pageY;
return true;
}


function init(){
window.onunload=ExitSite;
document.mousemove=mouseMove;
}
</script>
<body onLoad="init();" >
</body>
</html>
__________________
Martin
  #9 (permalink)  
Antiguo 12/08/2004, 18:56
apadilla78
Invitado
 
Mensajes: n/a
Puntos:
Hola tengo un problema similar. pero necesito ejecutar cierto código cuando se cierre la ventana... podrían decirme como atrapo este evento
  #10 (permalink)  
Antiguo 06/09/2004, 09:43
Avatar de mixba  
Fecha de Ingreso: noviembre-2003
Ubicación: CPU (Interior)
Mensajes: 116
Antigüedad: 20 años, 6 meses
Puntos: 0
He probado los scripts pero me da error, no habrá otra forma de hacer que solo salga la advertencia con la opción de Aceptar o Cancelar cuando me voy de la web presionando X unicamente

Gracias

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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 11:06.