Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/11/2007, 15:47
Emerald
 
Fecha de Ingreso: mayo-2006
Mensajes: 243
Antigüedad: 18 años, 10 meses
Puntos: 0
Pregunta ¿Por que pasa esto?

Hola!

Tengo el siguiente código para un cronómetro
Código:
        var CronoID = null
        var CronoEjecutandose = false
        var decimas, segundos, minutos, horas, pl
		var hr, mn, sg

        function DetenerCrono (){
          if(CronoEjecutandose)
          clearTimeout(CronoID)
          CronoEjecutandose = false
        }

        function InicializarCrono (hr,mn,sg) {
        //inicializa contadores globales
        
        decimas = 0
        segundos = sg
        minutos = mn
        horas = hr

        //pone a cero los marcadores
        document.aspnetForm.ctl00$display.value = '00 : 00 : 00'
        //document.aspnetForm.parcial.value = '00:00:00'
        }

        function MostrarCrono () {
              
            //incrementa el crono
            decimas++
            if ( decimas > 9 ) {
                decimas = 0
                segundos++
                if ( segundos > 59 ) {
                    segundos = 0
                    minutos++
                    if ( minutos > 59 ) {
                        minutos = 0
                        horas++
                        if ( horas > 23 ) {
                            alert('Fin de la cuenta')
                            DetenerCrono()
                            return true
                        }
                    }
                }
            }

            //configura la salida
            var ValorCrono = ""
            ValorCrono = (horas < 10) ? "0" + horas : horas
            ValorCrono += (minutos < 10) ? " : 0" + minutos : " : " + minutos
            ValorCrono += (segundos < 10) ? " : 0" + segundos : " : " + segundos
    
            document.aspnetForm.ctl00$display.value = ValorCrono
    
            CronoID = setTimeout("MostrarCrono()", 100)
            CronoEjecutandose = true
            return true
        }

        function IniciarCrono (hr,mn,sg) {
        DetenerCrono()
        InicializarCrono(hr,mn,sg)
        MostrarCrono()
        }
En donde la primer funcion que llamo es: IniciarCrono

Hasta aqui todo va bien, pero despues desde mi pagina (que está desarrollada en .NET) llamo la funcion: ChgT, que a su ves despues de cierto tiempo llama a la funcion: kC, la cual hace la simulación de un click. A continuación estas funciones:

Código:
function ChgT(p1,hr,mn,sg)
		{
		    setTimeout("kC(" + hr + "," + mn + "," + sg + ")",p1);
		}
		
		function kC(hr,mn,sg) 
		{
			var botonLlamado = document.getElementById('ctl00_btnLlamado')
			botonLlamado.click()
		}
El problema es que cuando se vuelve a cargar la página despues de haber llamado la funcion kC (que hace una simulacion de un click) el cronómetro se para y ya no avanza :(

Que puedo hacer??... tengo más de dos días batallando con esto.. pueden creerlo :(

Agradezco muchisisisisimo su ayuda!!!

Saludos