JavaScript, navegadores e fechamento de janelas: rastreando a partida do usuário
Rastrear a saída do usuário é essencial para capturar dados e executar ações antes que um usuário saia uma página. Embora o monitoramento de eventos de navegação seja relativamente simples, detectar fechamento de janela ou alterações de URL sem interação do usuário representa um desafio.
Capturar evento de fechamento de janela
A API Beacon, disponível em versões modernas navegadores, fornece uma solução. As solicitações de beacon são projetadas para serem executadas mesmo quando um usuário sai abruptamente de uma página, garantindo que ações críticas ainda possam ser executadas.
Para utilizar a API Beacon, use o seguinte trecho de código:
var url = "https://example.com/foo"; var data = "bar"; navigator.sendBeacon(url, data);
Alternativas para navegadores mais antigos
Se for necessário oferecer suporte a navegadores mais antigos, o evento visibilidadechange oferece um substituto. A transição de “passivo” para “oculto” neste evento significa a saída iminente do usuário. Aqui está um exemplo:
document.addEventListener('visibilitychange', function() { if (document.visibilityState === "hidden") { // Perform desired actions (e.g., send beacon request) } });
Confiabilidade e bloqueadores de anúncios
A mudança de visibilidade se tornou um indicador confiável da saída do usuário em navegadores modernos. No entanto, os bloqueadores de anúncios podem interferir nas solicitações de beacon, especialmente se forem de origem cruzada ou provenientes de domínios de rastreamento conhecidos.
Considerações entre sites
As solicitações de beacon são solicitações POST que respeitam Restrições do CORS. Ao fazer solicitações entre sites, certifique-se de que elas atendam aos requisitos necessários para evitar o bloqueio pelo navegador.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3