none
JS - perguntar se a pessoa realmente quer sair ou nao, como no hotmail Live, alguem sabe como? RRS feed

  • Pergunta

  • Ola pessoal
    preciso perguntar ao usuario se ele realmente quer sair da pagina ou nao
    tipo dar uma alert e avisar que se ele sair vai perder os dados da tela
    assim como ocorre no hotmail live
    alguem sabe como que se faz isso?

    ja tentei algumas coisas com o evento  onunload porem nao consegui nada
    alguem pode me ajudar?

    falow
    T+ pessoal
    sexta-feira, 5 de janeiro de 2007 16:35

Todas as Respostas

  • Krusst,

    Veja se isso lhe ajuda

    <!--
    <html>
    <head>
    <script language="javascript">

    function fecha()
    {
    var resposta = confirm("Voce Realmente Deseja Cancelar?");

    if(resposta)
    alert("Voce apertou ok");
    else
    alert("voce apertou cancel");

    }

    </script>

    </head>

    <body>
    <input type="button" id="btnSair" value="SAIR" onclick="fecha()">
    </body>

    </html>

    Eu chamei a funcao fecha() no evento onclick do meu botao sair.
    na funcao fecha() eu criei um confirm e guardei o valor booleano dele dentro da variavel resposta

    depois fiz um if e para saber em qual botao o usuario apertou (OK ou CANCEL), ao inves do alert voce poderia colocar o seu codigo por exemplo

    espero ter ajudado
    Felicidades
    domingo, 7 de janeiro de 2007 18:35
  • infelizmente nao
    pq ai o usuario tem que click no botao
    a funcao que eu quero é qdo ele mudar de pagina ou fechala apareca pra ele avisando que ele vai perder todos os dados, caso ele click no SIM ele continua na pagina se no NAO ele fecha ou muda de pagina
    mais obrigado da mesma forma
    T+ cara
    domingo, 7 de janeiro de 2007 20:12
  • ola pessoal
    eu fiz algo parecido com isso

    <body onunload="teste()">
    </body>
    </html>
    <script language="javascript">
    function teste(){
    if (confirm("Você irá perder os dados,deseja continuar?")){
    document.URL = "logoff.html"
    }
    }
    </script>

    porem como eu cancelo o ato de ele mudar de pagina ou fechar o browser?
    é esse o problema que estou tento
    tentei coisas desse tipo
    function teste(){
    if (confirm("Você irá perder os dados,deseja continuar?")){
    document.URL = "logoff.asp"
    }else{
    return false;
    }

    }

    e nao adianta redirecionar para a propria pagina em que se encontra, pois irá perder os dados da mesma forma
    a menos que eu passe os valores para a pagina na URL dessa forma..
    document.URL = "pagina.asp?Nome="+documento.form.nome.value
    e assim por diante o resto dos valores
    porem eu tenho alguns formularios com muitos campos, ai ja começa a complicar
    caso exista uma maneira que ele permaneça na tela sem eu ter que passar os valores novamente é melhor e claro mais facil

    por enqto é so
    obrigado a todos
    t+
    segunda-feira, 8 de janeiro de 2007 09:51
  • Olá Krusst,


    O que pensei q vc poderá fazer é dá um Server.Execute("minhapagina.aspx") na página redirecionando para a própria página e no evento load vc carregar os dados novamente pegando os valores da pagina anterior. É uma maneira.

    segunda-feira, 8 de janeiro de 2007 14:08
  • sim
    é o meio que estou utilizando
    porem repassar a pagina e os valores em caso de formularios grandes começa a ficar complicado

    mais obrigado pela ideia
    T+ cara
    segunda-feira, 8 de janeiro de 2007 15:13
  • eu entrei nesse forum pesquisando a mesma soluçao pra mim.

    não encontrei aqui, mas encontrei em outro lugar e resolvi voltar aqui pra passar a solução pra quem por ventura esteja buscando:

     

    existe o evento onbeforeunload ja implementado pra essa situação, em que vc ainda pode adicionar uma mensagem à mensagem padrão do browser.

     

    <html>

    <head>

    <script language="javascript">

    <!--

    window.onbeforeunload = function() {

    return "Os dados do formulário serão perdidos.";

    }

    -->

    </script>

    </head>

    <body>

     

    sua página com seus forms ficará inalterada caso a pessoa clique em cancelar na janela de confirmação.

     

    </body>

     

    espero ter ajudado.

    quarta-feira, 12 de março de 2008 21:39
  • Depois de mais de um ano:

    Obrigado, SuzanaAracaju ! Foi muito útil.

    Paulo Trajano
    quarta-feira, 19 de agosto de 2009 21:04
  • Olá... muito bom!
    ajudou muito amigo...
    obrigado mesmo SuzanaAracaju

    até mais! =)
    segunda-feira, 7 de dezembro de 2009 13:27
  • Cara MUITO OBRIGADO!!! vc n tem idéia do galho que quebrou ^^. é como eu digo, tudo é uma questão de entender aquilo que se está trabalhando...
    terça-feira, 17 de agosto de 2010 20:23