Botão Voltar do navegador
Todo mundo tenta contornar esse calcanhar de aquiles e a resposta sempre vem truncada e as soluções não funcionam.O que ocorre é que vindo a pagina de um form, quando o usuario clicar no botão voltar do browser, ele vai pra uma pagina expirada e ai o usuario tem que dar um atualizar na pagina. Eu já tentei de tudo pra contornar esse problema mas ainda não descobri uma solução satisfatória. A gente coloca um botão voltar com o link direto para a pagina anterior, isso garante que a pagina venha corretamente mas não impede que o usuario clique no botão voltar do navegador e estrague tudo. Já tentei com window.forward(1) e tudo que foi dica que peguei pelos forums afora mas nada funcionou. Eu desenvolvendo umaloja pra um cliente e ele ta me cobrando uma solução pra isso, não quer que o usuario cai numa página expirada apos passar pelo cadastro e entrar na tela de confirmação. Eu percebi que ao entrar no ambiente da redecard, ela trava a pagina de tal forma que o usuário pode teclar o botão voltar a vontade que a tela sempre retorna a mesma, eu tentei ver o codigo fonte mas não consegue descobrir nada pelo menos que parecesse com bloqueio.Garimpando, descobri muita coisa interessante pelos forums ai e uma delas que me chamou a atenção e que talvez seja o inicio de uma solução pra esse problema é mostrado abaixo:
> <script LANGUAGE="JavaScript"> var submitting = false; function confirmexit() { if (window.event) alert("houve um evento"); return "Para retornar ao cadastro por favor use o botão 'Volta Cadastro'!"; } </SCRIPT> <BODY onBeforeUnload="return confirmexit();">
Esse codigo eu coloquei na pagina de confirmação e notei que a linha if (window.event) alert("houve um evento") que eu coloquei propositalmente, indica um evento para qualquer coisa ou seja, uma tecla pressionada, um clique do mouse em qualquer botão do navegador inclusive o voltar ou atualizar ou as teclas de funções. Agora a pergunta é a seguinte:1) Como detectar qual foi o evento?2) Como cancelar esse evento se é que é possível.Se for possível, podemos cancelar esse evento tanto para o reload como para o back.
Discussão (2)
Carregando comentários...