Tite Postado Junho 9, 2007 Denunciar Share Postado Junho 9, 2007 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 em01:30 e eu atualizar o browser a contagem volta para 01:59... eu só queria que se caso atualizar obrowser a contagem continua normalmente.O certo seria colocar a variável ASP "strsegundos" no codigo JAVA também, mas quando faço isso acontagem 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Tite Postado Junho 11, 2007 Autor Denunciar Share Postado Junho 11, 2007 E ai pessoal.. ninguém sabe de uma solução??Esse é complicado mesmo heim..Se os fera não sabe, então é porque o codigo é dificil.Valeu.Abraços! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 .Andreia. Postado Junho 11, 2007 Denunciar Share Postado Junho 11, 2007 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Tite Postado Junho 11, 2007 Autor Denunciar Share Postado Junho 11, 2007 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 saiNossa 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 .Andreia. Postado Junho 12, 2007 Denunciar Share Postado Junho 12, 2007 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Tite Postado Junho 12, 2007 Autor Denunciar Share Postado Junho 12, 2007 Andreia... pelo visto você entende muiiitoooo heim!!!Não cheguei a testar seu script pois antes de ler sua resposta, consegui resolver oproblema 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ó colocaras variaveis ASP na variavel do js.Mas olha... brigadão ai pela atençao viu!Valeu d+++Seu script ta armazenado...Abraço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 .Andreia. Postado Junho 12, 2007 Denunciar Share Postado Junho 12, 2007 Poste a chamada das funcoes do teu codigo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Tite Postado Junho 13, 2007 Autor Denunciar Share Postado Junho 13, 2007 Poste a chamada das funcoes do teu codigoO restante é isso aí:<body bgcolor="#ffffff" onload="atualizaContador()"> <span id="contador"></span>Abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Tite
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:
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
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.