Pergunta

No Stackoverflow, quando você está fazendo uma nova pergunta, insira a pergunta e se decidir navegar para longe da página, obtenha uma confirmação "tem certeza".

Eu gostaria de fazer o mesmo no meu aplicativo ASP.NET:

O usuário precisa preencher um questionário e tem a opção de armazenar suas respostas temporariamente. Se o usuário decidir navegar para longe da página sem armazenar temporamente suas respostas, gostaríamos de confirmar e pedir ao usuário para armazenar suas respostas.

Duas questões:

  • Qual é uma maneira decente de mostrar o pop -up de confirmação antes que a página descarregue no Asp.net?
    Estou ciente do evento antes do UNOLLOAD, mas não quero torná -lo um grande hack de JavaScript.

  • Não quero que a confirmação entre quando o usuário clica no botão Salvar (que está salvando as respostas de qualquer maneira)

Foi útil?

Solução

Você tem que escrever a ação em

Evento OnBeforeUnload

que incêndios antes de uma página ser descarregada.

<HTML>
<head>
<script>
function closeIt()
{
  return "Any string value here forces a dialog box to \n" + 
         "appear before closing the window.";
}
window.onbeforeunload = closeIt;
</script>
</head>
<body>
  <a href="http://www.microsoft.com">Click here to navigate to 
      www.microsoft.com</a>
</body>
</html>

Outras dicas

Você deve prestar sua atenção em Evento "OnBeForunload" Quanto ao botão Salvar, você pode fazer uma lógica de script, por exemplo, cancelar a inscrição neste evento ou então.

Você pode tentar isso:

<button onclick="javascript:doSend()">send</button>
<button onclick="window.xbuttons +='save ';">save</button>
<button onclick="window.xbuttons +='edit';">edit</button>
<script>
   window.xbuttons = '';
   window.onbeforeunload = function(){
      if(!window.xbuttons.match(/save|edit/))
         return "Do you want to leave this page?";
   }
</script>

Aqui estão as coisas que você deve observar sobre o OnBeSeUnLoad:

  1. ONBEFOREUNLOAD O evento disparará em todos os A (elementos âncora) com atributo href
  2. ONBEFOREUNLOAD O evento será disparado quando o local do documento é alterado via JavaScript ou alterando o URL na barra de endereço
  3. ONBEFOREUNLOAD Evento será lançado em qualquer evento que use JavaScript: pseudo-protocolo
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top