Abelhudos da informática

Um blog onde você encontrará curiosidades, dicas, tutoriais e notícias sobre informática

Javascript: Contagem regressiva para fechar página

Depois de ver o comentário aqui no Blog do leitor Maniaclicks, resolvi fazer esse post, falando exatamente da sua solicitação feita no comentário: um código javascript com contagem regressiva para o fechamento de uma página, sem confirmação.


Como se vê em Redirecionamento em Javascript com Contagem Regressiva, eu demonstrei um código que redireciona o visitante, dentro de X segundos pré-determinados no Javascript, a uma nova página (como é o caso da nossa página de Erro 404 personalizada).

Baseando-me no mesmo princípio aplicado para esse evento, vou demonstrar um código semelhante, que, diferentemente do primeiro citado, irá fechar a página em 10 segundos.

Geralmente, usar esse tipo de operação é recomendado em caso de pop-ups de confirmação de envio de formulários, um pop-up qualquer e etc.

É bem simples. Vamos lá:

<script type="text/javascript">
<!--
 var numero = 10;
 function chamar(){
 if(numero>0){
 document.getElementById('timers').innerHTML = --numero;}
 }
setInterval("chamar();", 1000);
setTimeout("window.close();",10000);
//-->
</script>
<div align="center" style="font-family: tahoma; font-size: 16px;">Essa página fechará em: <br><div style="font-family: tahoma; font-size: 56px;" id="timers">10</div>
</div>

Nota: Se existir apenas uma página com o código, logicamente, será fechado o navegador; mas, em casos de uma página aberta em uma aba, apenas aquela aba do navegador será fechada.

Se você também desejar aumentar ou diminuir o intervalo, será necessário redefinir dois fatores:
- var numero = tempo;
- SetTimeout("window.close();", tempo x 1000);

Ou seja, o tempo desejado para o redirecionamento deve ser definido em SetTimeout, escrevendo-se o tempo desejado multiplicado por 1000 (porque essa função do Javascript é contada em milissegundos).
Da mesma forma, você deverá alterar também var numero para o tempo em segundos que será fechada a página (considerando o número, sem multiplicar, que você colocou em SetTimeout, é claro, pois essa variável guarda o valor que é exibido a cada 1 segundo antes de fechar a janela, isto é, ela apenas informa o tempo, exibindo-o numa DIV).

Exemplo:

var numero = 50;
SetTimeout("window.close();", 50000);



Espero que tenham gostado!
Qualquer dúvida, é só postar nos comentários aí embaixo!

Marcadores: