Como capturar evento “Cerrar Ventana”

 
Hola a tod@s,
 
Hace unos días me encontré con el problema de que quería controlar cuando cerraba el navegador para ejecutar cierto código de servidor, hasta que dí con un código en JavaScript que he podido comprobar que funciona con IE6.
 
Primero creamos un fichero .js donde ponemos el siguiente código:
 
var micierre = false;
 
function ConfirmarCierre()
{
       if (event.clientY < 0)
       {
              event.returnValue = "";
              setTimeout(‘micierre = false’, 100);
              micierre = true;
       }
}
 
function ManejadorCierre()
{
        if (micierre == true)
        {
              document.location.href = "paginaServidor.aspx";
        }
}
 
Y después hacemos la referencia del fichero js en la parte HTML de las páginas donde queremos controlar el cierre. Y por último llamamos a las funciones en los eventos onbeforeunload y onunload del body:
 
<body onbeforeunload="ConfirmarCierre()" onunload="ManejadorCierre()">
 
Espero que os haya ayudado.
 
Un saludo.

6 Responses to Como capturar evento “Cerrar Ventana”

  1. Bruno Oswaldo dice:

    Hola a todos saben me encontre con el mismo problema de capturar el evento al cerrar el navegador, y como todos , buscamos soluciones en la web… encontre ayuda al respecto pero solo en iexplore, al parecer esta sencillo en iexplore solo entendiendo que cuando se hace un evento click afuera del page, entonces la posicion de clientY es menor a cero y eso solucionaba el problema (me di cuenta que cuando se aplasta el boton actualizar en iexplire hace de cuantas como que se cierra el navegador — esto puede ser un bug… pero se los dejo para otro vea como solucionar)….Ahora despues de analizar porque los envetos en mozilla no funcionaban me di cuenta que en la w3c hace comparacion de navegador a navegador y mozilla no soportaba lo mismo que otro encuanto a eventos asi que decidi agrgar un evento al window.y despues de algunas pruebas error obtuve un codigo en java script que puede ser util para capatuar el "evento cerrra navegador"… ahi lesva el codigo.window.addEventListener(\’click\’,afuera,true); //para evento en navegador mozillavar even = null;var fue_unload = false; var micierre = false;function afuera(e){    even = e;    //alert(e.clientY);    if(!fue_unload)        even = null;}function ConfirmarCierre(){    if (window.ActiveXObject){ //para evento en iexplore        if (event.clientY < 0){            setTimeout(\’micierre = false\’, 100);            micierre = true;         }    }    else if (window.XMLHttpRequest){        //alert (\’estamos en firefox\’);          if(!even){            setTimeout(\’micierre = false\’, 100);            micierre = true;         }        else fue_unload = true;     }}function ManejadorCierre(){    if (micierre == true){        alert (\’llamo a startRequest\’);    }}Nota: Agradezco tambien quienes habian realizado algo similar ya que fue base para resolverlo.. en mozilla. Link de ayudas..http://www.baluart.net/articulo/615/utilizar-el-scroll-del-mouse-con-javascript.phphttp://www.quirksmode.org/js/events_properties.htmlhttp://geneura.ugr.es/~victor/cursillos/javascript/js_window.htmlhttp://www.quirksmode.org/dom/w3c_events.html#mouseposhttp://www.quirksmode.org/js/events_compinfo.htmlhttp://csanchezg.spaces.live.com/blog/cns!41C0BFBBFE8E1519!259.entryhttp://www.webestilo.com/foros/addmens.phtml?foro=11&msg=38264http://geneura.ugr.es/~victor/cursillos/javascript/js_window.htmlhttp://www.programacion.com/html/foros/3/msg/242830/http://www.epidataconsulting.com/tikiwiki/tiki-index.php?page=JavaScripthttp://www.mygnet.net/foros/javascriptyjs/como_detectar_el_cierre_del_navegador_ayuda.2948

  2. Bruno Oswaldo dice:

    Hola a todos saben me encontre con el mismo problema de capturar el evento al cerrar el navegador, y como todos , buscamos soluciones en la web… encontre ayuda al respecto pero solo en iexplore, al parecer esta sencillo en iexplore solo entendiendo que cuando se hace un evento click afuera del page, entonces la posicion de clientY es menor a cero y eso solucionaba el problema (me di cuenta que cuando se aplasta el boton actualizar en iexplire hace de cuantas como que se cierra el navegador — esto puede ser un bug… pero se los dejo para otro vea como solucionar)….Ahora despues de analizar porque los envetos en mozilla no funcionaban me di cuenta que en la w3c hace comparacion de navegador a navegador y mozilla no soportaba lo mismo que otro encuanto a eventos asi que decidi agrgar un evento al window.y despues de algunas pruebas error obtuve un codigo en java script que puede ser util para capatuar el "evento cerrra navegador"… ahi lesva el codigo.window.addEventListener(\’click\’,afuera,true); //para evento en navegador mozillavar even = null;var fue_unload = false; var micierre = false;function afuera(e){    even = e;    //alert(e.clientY);    if(!fue_unload)        even = null;}function ConfirmarCierre(){    if (window.ActiveXObject){ //para evento en iexplore        if (event.clientY < 0){            setTimeout(\’micierre = false\’, 100);            micierre = true;         }    }    else if (window.XMLHttpRequest){        //alert (\’estamos en firefox\’);          if(!even){            setTimeout(\’micierre = false\’, 100);            micierre = true;         }        else fue_unload = true;     }}function ManejadorCierre(){    if (micierre == true){        alert (\’llamo a startRequest\’);    }}Nota: Agradezco tambien quienes habian realizado algo similar ya que fue base para resolverlo.. en mozilla. Link de ayudas..http://www.baluart.net/articulo/615/utilizar-el-scroll-del-mouse-con-javascript.phphttp://www.quirksmode.org/js/events_properties.htmlhttp://geneura.ugr.es/~victor/cursillos/javascript/js_window.htmlhttp://www.quirksmode.org/dom/w3c_events.html#mouseposhttp://www.quirksmode.org/js/events_compinfo.htmlhttp://csanchezg.spaces.live.com/blog/cns!41C0BFBBFE8E1519!259.entryhttp://www.webestilo.com/foros/addmens.phtml?foro=11&msg=38264http://geneura.ugr.es/~victor/cursillos/javascript/js_window.htmlhttp://www.programacion.com/html/foros/3/msg/242830/http://www.epidataconsulting.com/tikiwiki/tiki-index.php?page=JavaScripthttp://www.mygnet.net/foros/javascriptyjs/como_detectar_el_cierre_del_navegador_ayuda.2948

  3. Bruno Oswaldo dice:

    Hola a todos saben me encontre con el mismo problema de capturar el evento al cerrar el navegador, y como todos , buscamos soluciones en la web… encontre ayuda al respecto pero solo en iexplore, al parecer esta sencillo en iexplore solo entendiendo que cuando se hace un evento click afuera del page, entonces la posicion de clientY es menor a cero y eso solucionaba el problema (me di cuenta que cuando se aplasta el boton actualizar en iexplire hace de cuantas como que se cierra el navegador — esto puede ser un bug… pero se los dejo para otro vea como solucionar)….Ahora despues de analizar porque los envetos en mozilla no funcionaban me di cuenta que en la w3c hace comparacion de navegador a navegador y mozilla no soportaba lo mismo que otro encuanto a eventos asi que decidi agrgar un evento al window.y despues de algunas pruebas error obtuve un codigo en java script que puede ser util para capatuar el "evento cerrra navegador"… ahi lesva el codigo.window.addEventListener(\’click\’,afuera,true); //para evento en navegador mozillavar even = null;var fue_unload = false; var micierre = false;function afuera(e){    even = e;    //alert(e.clientY);    if(!fue_unload)        even = null;}function ConfirmarCierre(){    if (window.ActiveXObject){ //para evento en iexplore        if (event.clientY < 0){            setTimeout(\’micierre = false\’, 100);            micierre = true;         }    }    else if (window.XMLHttpRequest){        //alert (\’estamos en firefox\’);          if(!even){            setTimeout(\’micierre = false\’, 100);            micierre = true;         }        else fue_unload = true;     }}function ManejadorCierre(){    if (micierre == true){        alert (\’llamo a startRequest\’);    }}Nota: Agradezco tambien quienes habian realizado algo similar ya que fue base para resolverlo.. en mozilla. Link de ayudas..http://www.baluart.net/articulo/615/utilizar-el-scroll-del-mouse-con-javascript.phphttp://www.quirksmode.org/js/events_properties.htmlhttp://geneura.ugr.es/~victor/cursillos/javascript/js_window.htmlhttp://www.quirksmode.org/dom/w3c_events.html#mouseposhttp://www.quirksmode.org/js/events_compinfo.htmlhttp://csanchezg.spaces.live.com/blog/cns!41C0BFBBFE8E1519!259.entryhttp://www.webestilo.com/foros/addmens.phtml?foro=11&msg=38264http://geneura.ugr.es/~victor/cursillos/javascript/js_window.htmlhttp://www.programacion.com/html/foros/3/msg/242830/http://www.epidataconsulting.com/tikiwiki/tiki-index.php?page=JavaScripthttp://www.mygnet.net/foros/javascriptyjs/como_detectar_el_cierre_del_navegador_ayuda.2948

  4. Bruno Oswaldo dice:

    Hola a todos saben me encontre con el mismo problema de capturar el evento al cerrar el navegador, y como todos , buscamos soluciones en la web… encontre ayuda al respecto pero solo en iexplore, al parecer esta sencillo en iexplore solo entendiendo que cuando se hace un evento click afuera del page, entonces la posicion de clientY es menor a cero y eso solucionaba el problema (me di cuenta que cuando se aplasta el boton actualizar en iexplire hace de cuantas como que se cierra el navegador — esto puede ser un bug… pero se los dejo para otro vea como solucionar)….Ahora despues de analizar porque los envetos en mozilla no funcionaban me di cuenta que en la w3c hace comparacion de navegador a navegador y mozilla no soportaba lo mismo que otro encuanto a eventos asi que decidi agrgar un evento al window.y despues de algunas pruebas error obtuve un codigo en java script que puede ser util para capatuar el "evento cerrra navegador"… ahi lesva el codigo.window.addEventListener(\’click\’,afuera,true); //para evento en navegador mozillavar even = null;var fue_unload = false; var micierre = false;function afuera(e){    even = e;    //alert(e.clientY);    if(!fue_unload)        even = null;}function ConfirmarCierre(){    if (window.ActiveXObject){ //para evento en iexplore        if (event.clientY < 0){            setTimeout(\’micierre = false\’, 100);            micierre = true;         }    }    else if (window.XMLHttpRequest){        //alert (\’estamos en firefox\’);          if(!even){            setTimeout(\’micierre = false\’, 100);            micierre = true;         }        else fue_unload = true;     }}function ManejadorCierre(){    if (micierre == true){        alert (\’llamo a startRequest\’);    }}Nota: Agradezco tambien quienes habian realizado algo similar ya que fue base para resolverlo.. en mozilla. Link de ayudas..http://www.baluart.net/articulo/615/utilizar-el-scroll-del-mouse-con-javascript.phphttp://www.quirksmode.org/js/events_properties.htmlhttp://geneura.ugr.es/~victor/cursillos/javascript/js_window.htmlhttp://www.quirksmode.org/dom/w3c_events.html#mouseposhttp://www.quirksmode.org/js/events_compinfo.htmlhttp://csanchezg.spaces.live.com/blog/cns!41C0BFBBFE8E1519!259.entryhttp://www.webestilo.com/foros/addmens.phtml?foro=11&msg=38264http://geneura.ugr.es/~victor/cursillos/javascript/js_window.htmlhttp://www.programacion.com/html/foros/3/msg/242830/http://www.epidataconsulting.com/tikiwiki/tiki-index.php?page=JavaScripthttp://www.mygnet.net/foros/javascriptyjs/como_detectar_el_cierre_del_navegador_ayuda.2948

  5. Bruno Oswaldo dice:

    Hola a todos saben me encontre con el mismo problema de capturar el evento al cerrar el navegador, y como todos , buscamos soluciones en la web… encontre ayuda al respecto pero solo en iexplore, al parecer esta sencillo en iexplore solo entendiendo que cuando se hace un evento click afuera del page, entonces la posicion de clientY es menor a cero y eso solucionaba el problema (me di cuenta que cuando se aplasta el boton actualizar en iexplire hace de cuantas como que se cierra el navegador — esto puede ser un bug… pero se los dejo para otro vea como solucionar)….Ahora despues de analizar porque los envetos en mozilla no funcionaban me di cuenta que en la w3c hace comparacion de navegador a navegador y mozilla no soportaba lo mismo que otro encuanto a eventos asi que decidi agrgar un evento al window.y despues de algunas pruebas error obtuve un codigo en java script que puede ser util para capatuar el "evento cerrra navegador"… ahi lesva el codigo.window.addEventListener(\’click\’,afuera,true); //para evento en navegador mozillavar even = null;var fue_unload = false; var micierre = false;function afuera(e){    even = e;    //alert(e.clientY);    if(!fue_unload)        even = null;}function ConfirmarCierre(){    if (window.ActiveXObject){ //para evento en iexplore        if (event.clientY < 0){            setTimeout(\’micierre = false\’, 100);            micierre = true;         }    }    else if (window.XMLHttpRequest){        //alert (\’estamos en firefox\’);          if(!even){            setTimeout(\’micierre = false\’, 100);            micierre = true;         }        else fue_unload = true;     }}function ManejadorCierre(){    if (micierre == true){        alert (\’llamo a startRequest\’);    }}Nota: Agradezco tambien quienes habian realizado algo similar ya que fue base para resolverlo.. en mozilla. Link de ayudas..http://www.baluart.net/articulo/615/utilizar-el-scroll-del-mouse-con-javascript.phphttp://www.quirksmode.org/js/events_properties.htmlhttp://geneura.ugr.es/~victor/cursillos/javascript/js_window.htmlhttp://www.quirksmode.org/dom/w3c_events.html#mouseposhttp://www.quirksmode.org/js/events_compinfo.htmlhttp://csanchezg.spaces.live.com/blog/cns!41C0BFBBFE8E1519!259.entryhttp://www.webestilo.com/foros/addmens.phtml?foro=11&msg=38264http://geneura.ugr.es/~victor/cursillos/javascript/js_window.htmlhttp://www.programacion.com/html/foros/3/msg/242830/http://www.epidataconsulting.com/tikiwiki/tiki-index.php?page=JavaScripthttp://www.mygnet.net/foros/javascriptyjs/como_detectar_el_cierre_del_navegador_ayuda.2948

  6. Bruno Oswaldo dice:

    Hola a todos saben me encontre con el mismo problema de capturar el evento al cerrar el navegador, y como todos , buscamos soluciones en la web… encontre ayuda al respecto pero solo en iexplore, al parecer esta sencillo en iexplore solo entendiendo que cuando se hace un evento click afuera del page, entonces la posicion de clientY es menor a cero y eso solucionaba el problema (me di cuenta que cuando se aplasta el boton actualizar en iexplire hace de cuantas como que se cierra el navegador — esto puede ser un bug… pero se los dejo para otro vea como solucionar)….Ahora despues de analizar porque los envetos en mozilla no funcionaban me di cuenta que en la w3c hace comparacion de navegador a navegador y mozilla no soportaba lo mismo que otro encuanto a eventos asi que decidi agrgar un evento al window.y despues de algunas pruebas error obtuve un codigo en java script que puede ser util para capatuar el "evento cerrra navegador"… ahi lesva el codigo.window.addEventListener(\’click\’,afuera,true); //para evento en navegador mozillavar even = null;var fue_unload = false; var micierre = false;function afuera(e){    even = e;    //alert(e.clientY);    if(!fue_unload)        even = null;}function ConfirmarCierre(){    if (window.ActiveXObject){ //para evento en iexplore        if (event.clientY < 0){            setTimeout(\’micierre = false\’, 100);            micierre = true;         }    }    else if (window.XMLHttpRequest){        //alert (\’estamos en firefox\’);          if(!even){            setTimeout(\’micierre = false\’, 100);            micierre = true;         }        else fue_unload = true;     }}function ManejadorCierre(){    if (micierre == true){        alert (\’llamo a startRequest\’);    }}Nota: Agradezco tambien quienes habian realizado algo similar ya que fue base para resolverlo.. en mozilla. Link de ayudas..http://www.baluart.net/articulo/615/utilizar-el-scroll-del-mouse-con-javascript.phphttp://www.quirksmode.org/js/events_properties.htmlhttp://geneura.ugr.es/~victor/cursillos/javascript/js_window.htmlhttp://www.quirksmode.org/dom/w3c_events.html#mouseposhttp://www.quirksmode.org/js/events_compinfo.htmlhttp://csanchezg.spaces.live.com/blog/cns!41C0BFBBFE8E1519!259.entryhttp://www.webestilo.com/foros/addmens.phtml?foro=11&msg=38264http://geneura.ugr.es/~victor/cursillos/javascript/js_window.htmlhttp://www.programacion.com/html/foros/3/msg/242830/http://www.epidataconsulting.com/tikiwiki/tiki-index.php?page=JavaScripthttp://www.mygnet.net/foros/javascriptyjs/como_detectar_el_cierre_del_navegador_ayuda.2948

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: