Como solicitar do usuário uma confirmação ao sair de uma página

Tenho visto um recurso interessante em alguns sites e principalmente em aplicativos web a la 2.0. Trata-se de uma solicitação ao usuário quando ele tenta fechar a página ou dirigir-se a outra URL. Quando o usuário executa alguma dessas ações, será necessário uma confirmação para fechar ou sair da página em questão.

Tal recurso é feito utilizando-se do evento onbeforeunload da seguinte maneira:

window.onbeforeunload = function() {
	return "Aqui você especifica uma mensagem a ser anexada junto a mensagem padrão do navegador.";
}

Quando o usário tentar fechar a página, apertar a tecla F5 ou navegar para uma outra URL, ele deverá confirmar a sua real vontade de sair da página. Observe um exemplo:

Exemplo do box de confirmação utilizado junto ao evento onbeforeunload

Bom, utilizando a imaginação é possível fazer um bom uso desse recurso, ainda mais com o advento do Ajax e das aplicações on-line.

Infelizmente o evento onbeforeunload não funciona no Opera (ou funciona e eu não sei?), somente no Internet Explorer e a partir da versão 0.9 do Firefox.

9 ideias sobre “Como solicitar do usuário uma confirmação ao sair de uma página

  1. Sinceramente, não vejo com bons olhos essa opção.
    Creio que se o usuário optou por fechar a janela, é poruqe ele realmente quer fechar a janela, visto que o botão de fechar janelas fica em uma área “morta” da tela.
    Ainda no mesmo raciocínio, se o usuário se deu ao trabalho de ir até a barra de endereços e digitar uma url, ele certamente se irritará ao ter ainda que confirmar se é isso mesmo o que ele quer fazer (eu mesmo me irritaria).

    Porém, há casos e acasos.
    Talvez não seria uma má idéia perguntar ao usuário se ele deseja mesmo sair antes da página antea, por exemplo, de salvar seus dados em tal site.

  2. Como o Micox citou acima, em certo momentos e aplicativos tal recurso se faz necessário e pode ser utilizado em benefício do usuário. Descubra como e onde :)

    Minha intenção com este post, foi demonstrar como realizar tal ação.

  3. Tenho uma aplicação que roda internamente na empresa, precisava exatamente disso. As meninas aqui fechavam o navegador antes de faturar o pedido, então o pedido era faturado, mais não era gerada duplicata para o pedido, então era necessário apagar o pedido e fazer tudo novamente. Procurei uma coisa dessas encassavelmente mais não achava então sem querem vi seu post no iMasters e cheguei até seu Blog. Parabéns pelo post.

  4. Bem, o recurso é bem útil !

    Mas como posso fazer para q não me pergunte isso no caso de um envio de form ?

  5. a internet hoje virou uma verdadeira plataforma, para execução de grandes sistemas, como o meu que estou desenvolvendo um sistema para confecionar bop utilizando linguagem php, considero hoje a internet comparando com um sistema operaciona com a diferença de ao inves de se clicar duas vezes para se executar um programa como e feito nos sistemas operacionais, na internet voce digita um endereço e executa sistemas poderosos, ficando limitado somente pela velocidade da internet nao por uma questao do sistema em si, entao essa confirmação de se fechar a pagina para alguns sites realmente poder nao ser legal mais para sistemas que utiliza a internet sem duvida nenhuma e muito importante