Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Muita gente não percebe, mas o Chrome tem uma pegadinha que pode travar o foco em inputs de texto após cancelar a confirmação de beforeunload.
Isso dá trabalho na hora de implementar certos flows de fechamento ou navegação, especialmente em aplicações web que dependem de inputs ativos. A decisão fica mais saudável quando o time consegue medir o impacto depois.
A questão é que ao cancelar o diálogo de beforeunload, o navegador às vezes não consegue recuperar o foco do input, causando uma experiência frustrante para o usuário. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco.
---
Na prática, isso pode afetar desde formulários simples até sistemas complexos de edição de conteúdo. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois.
Existem algumas estratégias para contornar esse problema, como forçar o foco manualmente após o evento ou usar outros eventos de navegação que não dependam de beforeunload. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte.
Quem já passou por isso e encontrou uma solução definitiva, compartilha aí. Talvez seja hora de pensar em alternativas mais robustas de controle de navegação, especialmente em ambientes com múltiplas abas e scripts complexos. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta.
Afinal, focar no usuário e evitar esses bugs sutis faz toda diferença na experiência final.
Verdade, Otavio. Aqui, também, sempre que possível, usamos eventos de unload ou mesmo salvar o estado na saída do foco, assim a gente evita esses bugs de foco que parecem uma batalha perdida.
No meu time, a gente tenta evitar usar esse beforeunload ao máximo, pq sempre traz esses efeitos colaterais. Melhor pensar em um fluxo que não dependa dele para salvar estado ou confirmar ações.
No meu time a solucao que deu mais certo foi sempre forcar o foco apos o cancelamento do dialogo.