Detectar el cierre de una ventana, cuando el usuario vuelve a la web

publicado por: Anonymous

En mi web los usuarios pueden pulsar un botón para hacer una acción (desde una ventana que se abre). Lo que quiero saber es cómo ejecutar una función cuando el usuario la cierra, o cuando este vuelve a la web.

Las dos formas me sirven. Esto es tan solo para comprobar el tiempo que se ha estado en esa ventana, desde que el usuario hace click en el botón (y se abre la ventana) hasta que la ventana se cierra o vuelva a la página.

  • La ventana abre YouTube, no una web mía.
  • No abro una pestaña, sino una pequeña ventana con un window.open()
  • Mejor si es con JavaScript y sin jQuery (Si no hay otra opción, no pasa nada)

solución

lo puedes hacer guardando una referencia de la ventana que has abierto y con un setInterval mirar si se ha cerrado o no . Aquí te dejo una función que lo puedes utilizar.

function openYoutube() {
    var ventana = window.open("https://youtube.com");
    var tiempo= 0;
    var interval = setInterval(function(){
         //Comprobamos que la ventana no este cerrada
        if(ventana.closed !== false) {
          //Si la ventana ha sido cerrada, limpiamos el contador
          window.clearInterval(interval)

         alert(`Tiempo total: ${tiempo} s `)

        } else {
          //Mientras no se cierra la ventana sumamos los segundos
          tiempo +=1;
        }


    },1000)


}

Puedes ver como funciona aquí

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *