Ir para conteúdo

POWERED BY:

Arquivado

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

Henrique_silva

Confirmação ao fechar Browser

Recommended Posts

Olá Pessoal

 

Estou com um problema aqui e agradeceria muito se alguém me desse um help.

Eu precisaria fazer com que quando o usuário clicar no "X" de fechar no navegador ( padronizado IE6 ),o mesmo exibisse uma mensagem se o usuário quer salvar os dados de um formulário contido na página.

 

Encontrei o evento "onbeforeunload" , ela é executada antes do fechamento da página.

Ela funciona até certo ponto, pois ela sempre exibe uma mensagem padrão do navegador acima da mensagem que eu defini na função. É algo como : "Tem certeza de que deseja ir para outra página?".

 

Além deste evento exibir esta mensagem padrão que acaba tirando o foco ( Pois estou fechando a janela e não indo para outra página ), tenho um outro problema, pois quando dou algum refresh na página por exemplo, o evento novamente é acionado.

 

Há alguma maneira de retirar esta mensagem padrão do navegador e fazer o evento onbeforeunload ser executado somente ao fechar da página ?

 

Há outra maneira de fazer o tratamento do fechamento do browser pelo botao fechar do navegador? Algum outro evento,sei la.

 

Agradeço muito pela ajuda.

 

Segue abaixo o evento do qual citei:

 

window.onbeforeunload = function (evt) {
        var message = "Deseja sair desta página?";
        if (evt) {
        evt.returnValue = message;
        }
        return message;
    }

Compartilhar este post


Link para o post
Compartilhar em outros sites

para quando ele fechar a janela é o efeito onunload

crie uma função com o que deseja

exemplo:

 

function teste(){
  if (confirm("Tem certeza que deseja sair dessa página")) {   
    window.close();
  } else {
    return false
  }
}

//ai no body você chama ela
<body onunload="teste();">

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá João Vitor,obrigado pela ajuda.

Mas no caso o "onunload" não funciona, pois ele executa a função quando a página já foi fechada,diferentemente do onbeforeunload que executa antes do fechamento.

Testei o que você me indicou e não funcionou, tentei também alterar a chamada da função para o onbeforeunload, mas mesmo clicando em cancelar na janela de mensagem a janela se fecha,rss

 

Alguma idéia ?

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

function teste(){
  if (confirm("Tem certeza que deseja sair dessa página")) {   
    window.close();
  } else {
    return false;
  }
}

//ai no body você chama ela
<body onbeforeunload="teste();">

 

cara tentando assim faz sentido, mesmo não tendo testado, verifica na janela, se voce escolher deseja fechar, ele fecha, senão retorna falso e não fecha mais. vou para casa, la testo e tento ver uma solução, se conseguir posto aqui beleza :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

se isso for realmente necessário, talvez seja util o uso de ajax.

 

por exemplo, adicione um checkbox no formulario

 

o checkbox serviria para "dizer" ao script que cada dado digitado ou alterado no formulário, deve ser automaticamente salvo.

 

mas avalie bem se há necessidade pois, dependendo do caso não é recomendável, apesar de ser funcional.

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.