Neste artigo você vai aprender a como identificar que usuário saiu da página, ou seja, quando o usuário muda a aba do site e vai para outro

Como identificar que usuário saiu da página capa

Conteúdo também disponível em vídeo:

Fala ai programador(a), beleza? Bora aprender como identificar quando o usuário muda de aba e deixa o nosso site

O processo é bem simples, precisamos apenas adicionar um evento na tela, ou seja, no objeto window de blur

Este evento vai disparar quando a janela/aba não ficar visível, que é justamente o que precisamos

Veja um exemplo prático:

window.addEventListener("blur", function(){
	console.log("Mudou de página!");
});

Teste no seu navegador, a cada mudança de aba ele registra no console a mensagem

Porém com esta abordagem temos um pequeno problema, clicar na barra de endereço também ativa o evento

Então caso você não queira esta ação, pode utilizar outra abordagem que é Page Visibility API

Utilizando o evento visibilityChange, veja um exemplo prático:

var hidden, visibilityChange;
if (typeof document.hidden !== "undefined") {
    hidden = "hidden";
    visibilityChange = "visibilitychange";
} else if (typeof document.mozHidden !== "undefined") {
    hidden = "mozHidden";
    visibilityChange = "mozvisibilitychange";
} else if (typeof document.msHidden !== "undefined") {
    hidden = "msHidden";
    visibilityChange = "msvisibilitychange";
} else if (typeof document.webkitHidden !== "undefined") {
    hidden = "webkitHidden";
    visibilityChange = "webkitvisibilitychange";
}

document.addEventListener(visibilityChange, acao, false);

function acao() {
    console.log("Mudando de aba");
}

Com o snippet acima você consegue detectar a mudança de aba em todos os navegadores, e só a mudança mesmo

Então em alguns casos pode ser mais interessante esta abordagem, pois geralmente queremos disparar um evento apenas quando o usuário muda de página

Conclusão

Neste artigo aprendemos a como identificar que usuário saiu da página com JavaScript

Podemos verificar que o usuário mudou de aba de duas formas, adicionando o evento blur na window

Ou utilizando a Page Visibility API, que na maioria dos casos parece ser a abordagem mais interessante, pois apenas realiza o evento quando o usuário sai de fato da página

Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube

Inscrever-se
Notificar de
guest

3 Comentários
mais antigos
mais recentes Mais votado
Feedbacks embutidos
Ver todos os comentários
Ricardo Gomes de Souza

E se ele fechar o navegador, consigo saber se ele fechou?

Battisti

oi Ricardo, os navegadores não aceitam mais tão facilmente este tipo de efeito

Ricardo

Preciso marcar a hora de Logout do usuario para verificar se ele abandou a live pela metade, existe alguma solução para isso?