Foros del Web » Programando para Internet » Javascript »

Problema Script calendario Firefox

Estas en el tema de Problema Script calendario Firefox en el foro de Javascript en Foros del Web. Hola, estoy usando un script para visualizar un calendario en la web, en Internet Explorer se ve perfectamente pero en Firefox solo se ve el ...
  #1 (permalink)  
Antiguo 12/09/2008, 11:41
 
Fecha de Ingreso: marzo-2006
Mensajes: 26
Antigüedad: 18 años, 1 mes
Puntos: 0
Problema Script calendario Firefox

Hola, estoy usando un script para visualizar un calendario en la web, en Internet Explorer se ve perfectamente pero en Firefox solo se ve el cuadro del calendario y los combos donde sale el mes y el año pero no salen los dias del mes. Alguien puede decirme que le pasa?. El script es el siguiente:

<SCRIPT LANGUAGE="JavaScript">

<!-- Begin
var now = new Date();
var month_array = new Array("Enero","february","march","April","May","Ju ne","July","August","September","October","Novembe r","December");
document.write("<form name=date_list><table bgcolor=orange><tr><td>");
document.write("<select name=month onchange=change_month(this.options.selectedIndex)> ");
for(i=0;i<month_array.length;i++)
{
if (now.getMonth() != i)
{document.write ("<option value="+i+">"+month_array[i]);}
else
{document.write ("<option value="+i+" selected>"+month_array[i]);}

}
document.write("</select>");
document.write("</td><td>");
document.write ("<select name=year onchange=change_year(this.options[this.options.selectedIndex])>");
for(i=2008;i<2009;i++)
{
if (now.getYear() != i)
{document.write("<option value="+i+">"+i);}
else
{document.write("<option value="+i+" selected>"+i);}
}
document.write("</select></td></tr><tr><td colspan=2><center>");

document.write("<table bgcolor=white border=0 cellspacing = 0 cellpading = 0 width=100%><tr bgcolor=orange align=center>");
document.write("<td><font color=black>L</font></td><td><font color=Black>M</td><td><font color=Black>X</td><td><font color=Black>J</td><td><font color=Black>V</td><td ><font color=Black>S</td><td ><font color=Black>D</td>");
document.write("</tr><tr>");
for(j=0;j<6;j++)
{
for(i=0;i<7;i++)
{
document.write("<td align=center id=d"+i+"r"+j+"></td>")
}
document.write("</tr>");
}

document.write("</table>");

document.write("</center></from></td></tr></table>");

var show_date = new Date();

function set_cal(show_date)
{
begin_day = new Date (show_date.getYear(),show_date.getMonth(),1);
begin_day_date = begin_day.getDay();
end_day = new Date (show_date.getYear(),show_date.getMonth()+1,1);
count_day = (end_day - begin_day)/1000/60/60/24;
input_table(begin_day_date,count_day);
}
set_cal(show_date);

function input_table(begin,count)
{
init();
j=0;
if (begin!=0){i=begin-1;}else{i=6}
for (c=1;c<count+1;c++)
{
colum_name = eval("d"+i+"r"+j);
if ((now.getDate() == c)&&(show_date.getMonth() == now.getMonth())&&(show_date.getYear() == now.getYear())) {colum_name.style.backgroundColor = "blue";colum_name.style.color = "white";};
colum_name.innerText = c;
i++;
if (i==7){i=0;j++;}
}
}

function init()
{
for(j=0;j<6;j++)
{
for(i=0;i<7;i++)
{
colum_name = eval("d"+i+"r"+j);
colum_name.innerText = " ";
colum_name.style.backgroundColor ="";
colum_name.style.color ="";
}
}
}

function change_month(sel_month)
{
show_date = new Date(show_date.getYear(),sel_month,1);
set_cal(show_date);
}

function change_year(sel_year)
{
sel_year = sel_year.value;
show_date = new Date(sel_year,show_date.getMonth(),1);
set_cal(show_date);
}
// End -->
</script>
  #2 (permalink)  
Antiguo 12/09/2008, 12:50
Avatar de jseros  
Fecha de Ingreso: agosto-2008
Ubicación: Bogotá
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 18
Respuesta: Problema Script calendario Firefox

Hola Smurffi.

Revisé tu código y em dí cuenta de algunas partes que iban contra el crossbrowsing.

1. las partes donde decian
Código PHP:

colum_name 
= eval( "d"+i+"r"+); 
no devuleven nada para un navegador distinto a IExplorer y por supuesto si lo que quieres es acceder a este elemento es mejor que cambies por lo siguiente si quieres que te devuela el elementos que en este caso son las celdas del calendario:

Código PHP:

colum_name 
document.getElementById"d"+i+"r"+); 
2. Cambiar todo lo que diga innerText por innerHTML. innerText es una propiedad que no es soportada.

3. Después de cambiar lo anterior mustra los días pero no apropiadamente. Para esto cambia en la función set_cal las lineas:

Código PHP:

begin_day 
= new Date (show_date.getYear(),show_date.getMonth(),1);

y

end_day 
= new Date (show_date.getYear(),show_date.getMonth()+1,1); 
Por:

Código PHP:

begin_day 
= new Date (show_date.getFullYear(),show_date.getMonth(),1);

y

end_day 
= new Date (show_date.getFullYear(),show_date.getMonth()+1,1); 
La diferencia es que getYear() devulve el año en 2, 3 o 4 digitos dependiendo del navegador mientras que getFullYear() siempre devuelve 4 dígitos.

Un saludo.
  #3 (permalink)  
Antiguo 12/09/2008, 14:05
 
Fecha de Ingreso: marzo-2006
Mensajes: 26
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: Problema Script calendario Firefox

Muchas gracias, ahora funciona perfectamente.
  #4 (permalink)  
Antiguo 12/09/2008, 20:42
Avatar de jseros  
Fecha de Ingreso: agosto-2008
Ubicación: Bogotá
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 18
Respuesta: Problema Script calendario Firefox

Fué un placer Smurffi, ya sabes que para cualquier otra duda aqui estaremos. ;)
  #5 (permalink)  
Antiguo 25/09/2008, 05:06
Avatar de juankysmith  
Fecha de Ingreso: marzo-2008
Mensajes: 30
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Problema Script calendario Firefox

Cita:
Iniciado por jseros Ver Mensaje
Fué un placer Smurffi, ya sabes que para cualquier otra duda aqui estaremos. ;)
Hola

¿En qué archivo haceis esas modificaciones?

gracias
  #6 (permalink)  
Antiguo 25/09/2008, 09:03
Avatar de jseros  
Fecha de Ingreso: agosto-2008
Ubicación: Bogotá
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 18
Respuesta: Problema Script calendario Firefox

Hola, los haces en el archivo .js del calendario. Es el código que aparece en el primer post.

Exitos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 20:46.