Ir para conteúdo
Fórum Script Brasil
  • 0

Código De Contagem Regressiva


Tite

Pergunta

Pessoal estou fazendo uma contagem regressiva, este codigo abaixo está funcionando quase perfeito,

o problema é simples.. porém não consegui resolver..

Obs.: Os minutos é passado diante de uma variável asp.

O problema é o seguinte: A contagem inicia-se perfeitamente.. mas se por exemplo estiver em

01:30 e eu atualizar o browser a contagem volta para 01:59... eu só queria que se caso atualizar o

browser a contagem continua normalmente.

O certo seria colocar a variável ASP "strsegundos" no codigo JAVA também, mas quando faço isso a

contagem fica com 3 casas mais ou menos assim: 01:307. Só que os segundos real fica no "07".

Enfim.. talvez seria melhor concertar esse erro das 3 casas.. pois assim pego a variavel de segundos também.

Conseguiram entender??

Vejam o codigo:

<%
strdata_atual = now
strdata_final = contagem("datafinal")

strminutos = DateDiff("n", strdata_atual, strdata_final)
strsegundos = DateDiff("s", strdata_atual, strdata_final)

%>
<script language="javaScript">
        var min, seg;
        min = <%= strminutos %>;
        seg = 0
        function relogio(){
            if((min > 0) || (seg > 0)){
                if(seg == 0){
                    seg = 59;
                    min = min - 1
                }
                else{
                    seg = seg - 1;
                }

                if(min.toString().length == 1){
                    min = "0" + min;
                }
                if(seg.toString().length == 1){
                    seg = "0" + seg;
                }

                document.getElementById('spanRelogio').innerHTML = min + ":" + seg;
                setTimeout('relogio()', 1000);
            }
            else{
             document.getElementById('spanRelogio').innerHTML = "A contagem terminou";
             parent.window.location="atualiza_contagem.asp";
            }
        }
    </script>
<body bgcolor="#ffffff" onload="relogio()">
<FONT face=verdana color=#1e90ff size=2><B>
<span id="spanRelogio"></span></FONT>

Como não entendo muito de java... to apanhando demais...

me ajudem ai quem souber... please!!!

Abraços.

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

hum.... tente fazer assim:

- crie um input hidden com value =""

- no body coloque o evento onbeforeunload que ele irá setar o valor desse hidden igual ao valor que consta no spanRelogio

- use um IF em ASP para verificar se o hidden está vazio, se ele não estiver vazio significa que ele tem um valor anterior guardado e deve ser usado a invez do valor novo.

eu não pude fazer teste aqui porque a rede está ruim, mas use a logica e ve o que sai

Link para o comentário
Compartilhar em outros sites

  • 0
hum.... tente fazer assim:

- crie um input hidden com value =""

- no body coloque o evento onbeforeunload que ele irá setar o valor desse hidden igual ao valor que consta no spanRelogio

- use um IF em ASP para verificar se o hidden está vazio, se ele não estiver vazio significa que ele tem um valor anterior guardado e deve ser usado a invez do valor novo.

eu não pude fazer teste aqui porque a rede está ruim, mas use a logica e ve o que sai

Nossa andreia... passei 20min tentando decifrar o que falou mas ta dificil..

só deu pra entender um pouco a parte do ASP..rs!

Seria pedir muito... se você detalhasse mais isso?

onde coloco o hidden?

qual o valor que eu colocaria nesse onbeforeunload???

valeu por enquanto!

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0

vamos la, eu estava na correria e a rede estava ruim então não deu pra te ajudar muito ontem..

bom, hj vi que o hidden não vai adiantar e que teriamos que usar algo como session ou cookies. Optei pelo cookies e montei um exemplo que pelo menos aqui funcionou, então teste o codigo ai na sua aplicacao: (IE)

<%
strdata_atual = now
strdata_final = contagem("datafinal")

strminutos = DateDiff("n", strdata_atual, strdata_final)
strsegundos = DateDiff("s", strdata_atual, strdata_final)
%>
<script language="javaScript">
				var horario_antigo = getCookie("horario_antigo").split(":");
        var min, seg;

        if (horario_antigo)
        {
	        min = horario_antigo[0];
	        seg = horario_antigo[1];
        }
        else
        {
	        min = <%= strminutos %>;
	        seg = 0
        }

        function relogio(){
            if((min > 0) || (seg > 0)){
                if(seg == 0){
                    seg = 59;
                    min = min - 1
                }
                else{
                    seg = seg - 1;
                }

                if(min.toString().length == 1){
                    min = "0" + min;
                }
                if(seg.toString().length == 1){
                    seg = "0" + seg;
                }

                document.getElementById('spanRelogio').innerHTML = min + ":" + seg;
                setTimeout('relogio()', 1000);
            }
            else{
             document.getElementById('spanRelogio').innerHTML = "A contagem terminou";
             parent.window.location="atualiza_contagem.asp";
            }
        }

function setCookie(cookie_name, cookie_value, expire_in_days)
{
    var cookie_expire = "";

    if (expire_in_days != null)
    {
        var expire = new Date();
        expire.setTime(expire.getTime() + 1000*60*60*24*parseInt(expire_in_days));
        cookie_expire = "; expires=" + expire.toGMTString();
    }

    document.cookie = escape(cookie_name) + "=" + escape(cookie_value) + cookie_expire;
}

function getCookie(cookie_name)
{
    if (!document.cookie.match(eval("/" + escape(cookie_name) + "=/")))
    {
        return false;
    }

    return unescape(document.cookie.replace(eval("/^.*?" + escape(cookie_name) + "=([^\\s;]*).*$/"), "$1"));
}
    </script>
<body bgcolor="#ffffff" onload="relogio()" onbeforeunload="setCookie('horario_antigo', document.getElementById('spanRelogio').innerHTML, 1)">
<FONT face=verdana color=#1e90ff size=2><B>
<span id="spanRelogio"></span></FONT>

se você tiver alguma duvida no codigo me fala que eu explico o que eu fiz

Link para o comentário
Compartilhar em outros sites

  • 0

Andreia... pelo visto você entende muiiitoooo heim!!!

Não cheguei a testar seu script pois antes de ler sua resposta, consegui resolver o

problema com este script abaixo:

var YY = 2007;
var MM = 12;
var DD = 31;
var HH = 23;
var MI = 59;
var SS = 59; 

function atualizaContador() {
  var hoje = new Date();
  var futuro = new Date(YY,MM-1,DD,HH,MI,SS); 

  var ss = parseInt((futuro - hoje) / 1000);
  var mm = parseInt(ss / 60);
  var hh = parseInt(mm / 60);
  var dd = parseInt(hh / 24); 

  ss = ss - (mm * 60);
  mm = mm - (hh * 60);
  hh = hh - (dd * 24); 

  var faltam = '';
  faltam += (dd && dd > 1) ? dd+' dias, ' : (dd==1 ? '1 dia, ' : '');
  faltam += (toString(hh).length) ? hh+' hr, ' : '';
  faltam += (toString(mm).length) ? mm+' min e ' : '';
  faltam += ss+' seg'; 

  if (dd+hh+mm+ss > 0) {
    document.getElementById('contador').innerHTML = faltam;
    setTimeout(atualizaContador,1000);
  } else {
    document.getElementById('contador').innerHTML = 'CHEGOU!!!!';
    setTimeout(atualizaContador,1000);
  }
}

Assim funcionou perfeitamente.. do jeitim que eu queria.. é só colocar

as variaveis ASP na variavel do js.

Mas olha... brigadão ai pela atençao viu!

Valeu d+++

Seu script ta armazenado...

Abraço.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...