Salve, salve comunidade!

Acompanhe comigo a seguinte situação: Você está desenvolvendo um sistema web que abre uma janela em algum momento e não deseja que o usuário, ao clicar novamente no botão, recarregue aquela janela aberta.

Então, com o seguinte código podemos criar esta situação onde caso usuário clique novamente no link que abre a janela, o sistema não irá permitir que ela seja re-aberta. Evitando assim consumo excessivo de tráfego.

Tomei a liberdade de comentar os pontos principais do código, espero que entendam:

  1. <script language=”javascript” type=”text/javascript”>
  2. var janela = null;
  3. function AbreJanela()
  4. {
  5. // verifica se a janela está aberta
  6. if(janela != null && !janela.closed)
  7. {
  8. // caso esteja aberta, mostra um aviso
  9. alert(‘A janela já está aberta’);
  10. }
  11. else if(janela != null && janela.closed)
  12. {
  13. // se a janela foi fechada, limpo a variavel janela para permitir que ela seja re-aberta
  14. alert(‘A janela foi fechada e agora poderá ser aberta’);
  15. janela = null;
  16. }
  17. // só abre a janela se a variavel ‘janela’ é nula
  18. if(janela == null)
  19. {
  20. janela = window.open(“http://www.codigofonte.net”, “janela”, “top=10, left=10”);
  21. }
  22. }
  23. </script>

Veja que neste código há uma outra condição if(janela != null && janela.closed) que faz um teste e verifica se a janela foi aberta mas o usuário a fechou. Se não colocarmos este trecho de código, o sistema nunca mais (até que a página seja recarregada) irá permitir que a janela seja aberta e este não é o nosso caso, não é?

Pronto. Agora você poderão fazer testes quando utiliza popups em seu site.

Até a próxima.

 

Fonte: https://www.codigofonte.net