hola a todos...he elaborado una aplicacion que evalua una cantidad de pregunta (ejemplo 30); la aplicacio debe tener 2 contador; 1 para contar el tiempo total y otro para contar el tiempo de la pregunta, al pagina el contador de la pregunta debe inicializar en ceros y el otro debe seguir contando el tiempo.
ahora bien mi problema es el siguiente:
al paginar en internet explorer 8 (en mozilla firefox me funciona de maravilla) los contadores no me sirven; la aplicacion sigue paginando los registro de la consulta pero los contadores quedan como bloqueados, mirando el internet explorer me sale un error asi:
Código:
Detalles de error de página web
Mensaje: 'document.preguntas.display' es nulo o no es un objeto
url:ajax.js
los contadores son 2 input el codigo esta en un archivo php asi.
Código PHP:
echo "<table width='750px'>" ;
echo "<tr><td><input type='text' size='8' name='display' value='00:00'></td><td><input type='text' style='font-size:20px; background-color:#d8d8d8; border:solid 1px #333333;width:100px; text-align:center;height:20px;' value='".$PagAct."'></td><td><input type='text' size='8' name='display2' value='00:00'></td></tr>" ;
echo "</table>" ;
y el archivo ajax.js que pagina y contabiliza los tiempo es
Código:
function objetoAjax(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
var nucleo_global
function setNucleo(nucleo)
{
nucleo_global = nucleo ;
}
function getNucleo()
{
return nucleo_global
}
function Pagina(nropagina,nucleo,usuario,valor_pregunta,tipo_pregunta,componente)
{
iniciarCronopersonal();
divContenido = document.getElementById('contenido');
num_pregunta = document.preguntas.id_pregunta.value;
setNucleo(nucleo)
ajax=objetoAjax();
ajax.open("GET", "examen.php?pag="+nropagina+"&nucleo="+nucleo+"&num_pregunta="+num_pregunta+"&valor_pregunta="+valor_pregunta+"&usuario="+usuario+"&tipo_pregunta="+tipo_pregunta+"&componente="+componente);
divContenido.innerHTML= '<img src="imagenes/anim.gif">';
ajax.onreadystatechange=function()
{
if (ajax.readyState==4)
{
divContenido.innerHTML = ajax.responseText
}
}
ajax.send(null)
}
/*cronometro*/
var CronoID = null
var CronoEjecutandose = false
var segundos, minutos , decimas
var segundos2, minutos2 , decimas2
function DetenerCrono ()
{
if(CronoEjecutandose)
clearTimeout(CronoID)
CronoEjecutandose = false
}
function iniciarCronopersonal()
{
decimas2 = 0
segundos2 = 0
minutos2 = 0
}
function InicializarCrono ()
{
//inicializa contadores globales
decimas = 0
segundos = 0
minutos = 0
decimas2 = 0
segundos2 = 0
minutos2 = 0
//pone a cero los marcadores
document.preguntas.display.value = '00:00'
document.preguntas.display2.value = '00:00'
}
function MostrarCrono ()
{
//incrementa el crono
decimas++
if ( decimas > 9 )
{
decimas = 0
segundos++
if ( segundos > 59 )
{
segundos = 0
minutos++
if ( minutos > 120 )
{
alert('El tiempo para el examen a concluido')
DetenerCrono()
location.href="analisis_respuestas.php?nucleo="+getNucleo()
return true
}
}
}
//incrementa el crono
decimas2++
if ( decimas2 > 9 )
{
decimas2 = 0
segundos2++
if ( segundos2 > 59 )
{
segundos2 = 0
minutos2++
if(minutos2 % 2 == 0)
alert("El tiempo para la pregunta ha finalizado")
}
}
var ValorCrono = ""
var ValorCrono2 = ""
ValorCrono = (minutos < 10) ? "0" + minutos : minutos
ValorCrono += (segundos < 10) ? ":0" + segundos : ":" + segundos
ValorCrono2 = (minutos2 < 10) ? "0" + minutos2 : minutos2
ValorCrono2 += (segundos2 < 10) ? ":0" + segundos2 : ":" + segundos2
document.preguntas.display.value = ValorCrono
document.preguntas.display2.value = ValorCrono2
CronoID = setTimeout("MostrarCrono()", 100)
CronoEjecutandose = true
return true
}
function IniciarCrono (nucleo)
{
DetenerCrono()
InicializarCrono()
MostrarCrono()
}
espero haber sido claro. gracias