Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rodrigo Knx

[Resolvido] Script js não funciona no firefox

Recommended Posts

Entao galera, o script de JS pra mostrar um pequeno calendário não funciona somente no FF..

Aqui está o código:

<script language='Javascript'>
// construindo o calendário
function popdate(obj,div,tam,ddd)
{
   if (ddd) 
   {
       day = ""
       mmonth = ""
       ano = ""
       c = 1
       char = ""
       for (s=0;s<parseInt(ddd.length);s++)
       {
           char = ddd.substr(s,1)
           if (char == "/") 
           {
               c++; 
               s++; 
               char = ddd.substr(s,1);
           }
           if (c==1) day    += char
           if (c==2) mmonth += char
           if (c==3) ano    += char
       }
       ddd = mmonth + "/" + day + "/" + ano
   }

   if(!ddd) {today = new Date()} else {today = new Date(ddd)}
   date_Form = eval (obj)
   if (date_Form.value == "") { date_Form = new Date()} else {date_Form = new Date(date_Form.value)}

   ano = today.getFullYear();
   mmonth = today.getMonth ();
   day = today.toString ().substr (8,2)

   umonth = new Array ("Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro")
   days_Feb = (!(ano % 4) ? 29 : 28)
   days = new Array (31, days_Feb, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)

   if ((mmonth < 0) || (mmonth > 11))  alert(mmonth)
   if ((mmonth - 1) == -1) {month_prior = 11; year_prior = ano - 1} else {month_prior = mmonth - 1; year_prior = ano}
   if ((mmonth + 1) == 12) {month_next  = 0;  year_next  = ano + 1} else {month_next  = mmonth + 1; year_next  = ano}
   txt  = "<table bgcolor='#efefff' style='border:solid #639DF5; border-width:'1' cellspacing='0' cellpadding='3' border='0' width='"+tam+"' height='"+tam*1.1 +"'>"
   txt += "<tr bgcolor='#FFFFFF'><td colspan='7' align='center'><table border='0' cellpadding='0' width='100%' bgcolor='#FFFFFF'><tr>"
   txt += "<td width=20% align=center><a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+((mmonth+1).toString() +"/01/"+(ano-1).toString())+"') class='Cabecalho_Calendario' title='Ano Anterior'><<</a></td>"
   txt += "<td width=20% align=center><a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+( "01/" + (month_prior+1).toString() + "/" + year_prior.toString())+"') class='Cabecalho_Calendario' title='Mês Anterior'><</a></td>"
   txt += "<td width=20% align=center><a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+( "01/" + (month_next+1).toString()  + "/" + year_next.toString())+"') class='Cabecalho_Calendario' title='Próximo Mês'>></a></td>"
   txt += "<td width=20% align=center><a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+((mmonth+1).toString() +"/01/"+(ano+1).toString())+"') class='Cabecalho_Calendario' title='Próximo Ano'>>></a></td>"
   txt += "<td width=20% align=right><a href=javascript:force_close('"+div+"') class='Cabecalho_Calendario' title='Fechar Calendário'><b>x</b></a></td></tr></table></td></tr>"
   txt += "<tr><td colspan='7' align='right' bgcolor='#CCCCCC' class='mes'><a href=javascript:pop_year('"+obj+"','"+div+"','"+tam+"','" + (mmonth+1) + "') class='mes'>" + ano.toString() + "</a>"
   txt += " <a href=javascript:pop_month('"+obj+"','"+div+"','"+tam+"','" + ano + "') class='mes'>" + umonth[mmonth] + "</a> <div id='popd' style='position:absolute'></div></td></tr>"
   txt += "<tr bgcolor='#639DF5'><td width='14%' class='dia' align=center><b>Dom</b></td><td width='14%' class='dia' align=center><b>Seg</b></td><td width='14%' class='dia' align=center><b>Ter</b></td><td width='14%' class='dia' align=center><b>Qua</b></td><td width='14%' class='dia' align=center><b>Qui</b></td><td width='14%' class='dia' align=center><b>Sex<b></td><td width='14%' class='dia' align=center><b>Sab</b></td></tr>"
   today1 = new Date((mmonth+1).toString() +"/01/"+ano.toString());
   diainicio = today1.getDay () + 1;
   week = d = 1
   start = false;

   for (n=1;n<= 42;n++) 
   {
       if (week == 1)  txt += "<tr bgcolor='#EAEAEA' align=center>"
       if (week==diainicio) {start = true}
       if (d > days[mmonth]) {start=false}
       if (start) 
       {
           dat = new Date((mmonth+1).toString() + "/" + d + "/" + ano.toString())
           day_dat   = dat.toString().substr(0,10)
           day_today  = date_Form.toString().substr(0,10)
           year_dat  = dat.getFullYear ()
           year_today = date_Form.getFullYear ()
           colorcell = ((day_dat == day_today) && (year_dat == year_today) ? " bgcolor='#0099CC' " : "" )
           txt += "<td"+colorcell+" align=center><a href=javascript:block('"+  d + "/" + (mmonth+1).toString() + "/" + ano.toString() +"','"+ obj +"','" + div +"') class='data'>"+ d.toString() + "</a></td>"
           d ++ 
       } 
       else 
       { 
           txt += "<td class='data' align=center> </td>"
       }
       week ++
       if (week == 8) 
       { 
           week = 1; txt += "</tr>"} 
       }
       txt += "</table>"
       div2 = eval (div)
       div2.innerHTML = txt 
}

// função para exibir a janela com os meses
function pop_month(obj, div, tam, ano)
{
 txt  = "<table bgcolor='#CCCCFF' border='0' width=80>"
 for (n = 0; n < 12; n++) { txt += "<tr><td align=center><a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+("01/" + (n+1).toString() + "/" + ano.toString())+"')>" + umonth[n] +"</a></td></tr>" }
 txt += "</table>"
 popd.innerHTML = txt
}

// função para exibir a janela com os anos
function pop_year(obj, div, tam, umonth)
{
 txt  = "<table bgcolor='#CCCCFF' border='0' width=160>"
 l = 1
 for (n=1991; n<2012; n++)
 {  if (l == 1) txt += "<tr>"
    txt += "<td align=center><a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+(umonth.toString () +"/01/" + n) +"')>" + n + "</a></td>"
    l++
    if (l == 4) 
       {txt += "</tr>"; l = 1 } 
 }
 txt += "</tr></table>"
 popd.innerHTML = txt 
}

// função para fechar o calendário
function force_close(div) 
   { div2 = eval (div); div2.innerHTML = ''}

// função para fechar o calendário e setar a data no campo de data associado
function block(data, obj, div)
{ 
   force_close (div)
   obj2 = eval(obj)
   obj2.value = data 
}

</script>

 

HTML da página:

 

<input NAME="data1" SIZE="11" MAXLENGTH="10" value="">
	<input id="btcal" TYPE="button" NAME="btnData1" VALUE="Caldendário" onclick="javascript:popdate('document.form1.data1','pop1','150',document.form1.data1.value)">
	<span id="pop1"></span>

 

Provavelmente o erro seja na parte do 'onclick'.

 

Desde já, obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

troque isso:
div2 = eval (div)
div2.innerHTML = txt 

 

por isso:

document.getElementById("pop1").innerHTML = txt 

 

e debug o codigo com alert() e veja se chega alguma coisa

Compartilhar este post


Link para o post
Compartilhar em outros sites

troque isso:
div2 = eval (div)
div2.innerHTML = txt 

 

por isso:

document.getElementById("pop1").innerHTML = txt 

 

e debug o codigo com alert() e veja se chega alguma coisa

 

Foi exatamente isso cara!

E na parte do fechar div (close) mudei também:

 

De: div2 = eval (div); div2.innerHTML = ''

Para: document.getElementById("pop1").innerHTML = ''

 

Obrigado cara!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.