Qual é a melhor maneira de detectar um evento de navegador próximo?
Não há nenhum evento específico de "fechar navegador".
Tudo o que você tem é um mecanismo para descarregar - e isso é acionado quando a janela é fechada, a guia é fechada, a página muda (botão voltar ou link é clicado) ou Reloads.
Você precisa usar Javascript para capturar o evento onbeforeunload (descarregar evento não é confiável).
Você tem que ter cuidado, porque o evento não gosta de ser interferido - mas há maneiras padrão de atrasá-lo por algumas centenas de milissegundos - muitas vezes o suficiente para disparar uma mensagem ajax ou pingar um URI de rastreamento de pixel, etc.
Alternativamente, você pode usar o evento Beacon suportado em navegadores modernos.
Com um pouco mais de esforço, você pode evitar acioná-lo para Link Clicks (para que você não capture descargas de navegação) - mas isso é o mais limpo que você vai conseguir.
Você pode tentar detectar movimentos do navegador e do mouse - num esforço para adivinhar se eles foram para o [X] (canto superior direito) ou para as abas (mais difícil de detectar pois pode haver várias abas abertas (não, não há como obter uma contagem de abas que eu saiba)).
Para limpar mais - você pode capturar o evento performance.navigation.
Isso lhe dirá se houve uma atualização (isso significa que você já teria disparado o evento onbeforeunload) - então se isso é para rastreamento, você pode enviar um segundo valor e saber ignorar o primeiro.
(Isso também pode ser usado para detectar navegação para outras páginas, caso você não queira detectar cliques de link e excluir a chamada de função).
Mas isso é o melhor que você vai conseguir :(
Artigos semelhantes
- Por que você deve escolher o 3D para o seu próximo evento virtual?
- Qual é o melhor navegador de Internet? Qual é o melhor navegador de Internet?
- Existe uma maneira de convidar alguém para um evento do calendário apenas compartilhando um link?
- Qual é o melhor navegador, o Brave ou o navegador de Internet da Samsung?