Hola!
no consigo encontrar dónde tengo el error o qué estoy haciendo mal, he mirado miles de cosas por internet y ya no sé...
Al ejecutar este código para hacer unas pruebecillas me sale un error en IE de "Se esperaba un objeto", y no sé por qué.
El caso es que este código lo que hace es recoger los datos de hora inicial y hora final que llegan de un formulario, después al cargarse la página calculo el tiempo que queda hasta la hora inicial y cuando llega a esa hora pasa a la función envia(). El problema viene cuando llega al setTimeout que está dentro del if, ahí es cuando al ejecutarse el retraso de 10000 milisegundos da el error en IE y ya no se ejecuta más.
Código:
<%@page contentType="text/html;charset=ISO-8859-1" import="java.util.Calendar,java.text.SimpleDateFormat,java.util.TimeZone,java.io.*,java.util.Date"%>
<html>
<head>
<title>Insert title here</title>
<%
String hora_ini_aux = request.getParameter("fecha_inicio");
String hora_fin_aux = request.getParameter("fecha_fin");
String[] vect_hora_ini = hora_ini_aux.split(":");
int horas_ini = Integer.parseInt(vect_hora_ini[0].trim());
int minutos_ini = Integer.parseInt(vect_hora_ini[1].trim());
int segundos_ini = Integer.parseInt(vect_hora_ini[2].trim());
Calendar calendar_ini = Calendar.getInstance();
calendar_ini.set(Calendar.HOUR_OF_DAY, horas_ini);
calendar_ini.set(Calendar.MINUTE, minutos_ini);
calendar_ini.set(Calendar.SECOND, segundos_ini);
Date time_ini = calendar_ini.getTime();
String[] vect_hora_fin = hora_fin_aux.split(":");
int horas_fin = Integer.parseInt(vect_hora_fin[0].trim());
int minutos_fin = Integer.parseInt(vect_hora_fin[1].trim());
int segundos_fin = Integer.parseInt(vect_hora_fin[2].trim());
Calendar calendar_fin = Calendar.getInstance();
calendar_fin.set(Calendar.HOUR_OF_DAY, horas_fin);
calendar_fin.set(Calendar.MINUTE,minutos_fin);
calendar_fin.set(Calendar.SECOND, segundos_fin);
Date time_fin = calendar_fin.getTime();
Calendar fecha_actual= Calendar.getInstance();
Date ahora=fecha_actual.getTime();
long dif_milis=time_ini.getTime() - ahora.getTime();
%>
<script language="javascript" type="text/javascript">
var ident;
function enviar_form(){
var fecha_ini=new Date();
fecha_ini="<%=time_ini%>";
var fecha_fin=new Date();
fecha_fin="<%=time_fin%>";
var miliseg=<%=dif_milis%>;
if (miliseg>0)
{
ident=setTimeout("envia()",miliseg);
}
else
{
miliseg=0;
ident=setTimeout("envia()",miliseg);
}
}
function envia(){
var mydate=new Date();
var year=mydate.getYear();
var day=mydate.getDay();
var month=mydate.getMonth()+1;
if (month<10)
month="0"+month;
var daym=mydate.getDate();
if (daym<10)
daym="0"+daym;
var hora=mydate.getHours();
if(hora<10)
hora="0"+hora;
var minuto=mydate.getMinutes();
if(minuto<10)
minuto="0"+minuto;
var segundo=mydate.getSeconds();
if(segundo<10)
segundo="0"+segundo;
document.write("<b>"+daym+"/"+month+"/"+year+" "+hora+":"+minuto+":"+segundo+" </b>=> hola");
document.write("<br>");
var nueva=new Date();
nueva2=nueva.getTime();
var nueva3=new Date();
nueva3=<%=calendar_fin.getTimeInMillis()%>;
var t_fin=nueva3 - nueva2;
if (t_fin>0)
{
ident = setTimeout("envia()",10000);
}
else
{
parar();
}
}
function parar(){
alert("se acabó");
clearTimeout(ident);
}
</script>
</head>
<body onLoad="javascript:enviar_form()">
</body>
</html>
A ver si alguien me echa una mano...que yo ya no veo nada :(
Gracias!!!!