Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lab Design

Botão Voltar do navegador

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa realmente é uma QUESTÃO que intriga todos nós, já que é dificil achar uma solução podemos contorná-la, no body da pagina você coloca:

<body onLoad="window.history.go(0)">
OU

<body onLoad="window.location.reload()">

assim que a pagina for iniciada ela dá um reload deixando de ser expirada.Quem num tem cão caça com gato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pra cancelar é simples. Independente do que o usuario escolher, você cancela assim:

<BODY onBeforeUnload="return false;">

Não dá pra saber qual o evento.

Faça um trabalho de sessões para que o usuario não volte e grave informações novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.