Rodrigo Kx Postado Outubro 13, 2011 Denunciar Share Postado Outubro 13, 2011 (editado) então 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=java script: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=java script: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=java script: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=java script: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=java script: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=java script:pop_year('"+obj+"','"+div+"','"+tam+"','" + (mmonth+1) + "') class='mes'>" + ano.toString() + "</a>" txt += " <a href=java script: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=java script: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=java script: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=java script: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="java script: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! Editado Outubro 17, 2011 por Rodrigo Kx Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Willian Gustavo Veiga Postado Outubro 14, 2011 Denunciar Share Postado Outubro 14, 2011 Erros? Quais? Verificou no console de erros do Firefox?Um abraço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rodrigo Kx Postado Outubro 17, 2011 Autor Denunciar Share Postado Outubro 17, 2011 Ele diz o seguinte:Pop1 is not defined.Na linha:div2 = eval (div) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fiote Postado Outubro 17, 2011 Denunciar Share Postado Outubro 17, 2011 Troque o seu:div2 = eval(div) Para: div2 = document.getElementById(div); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rodrigo Kx Postado Outubro 17, 2011 Autor Denunciar Share Postado Outubro 17, 2011 Consegui, obrigado, o erro no FF estava nessa linha mesmo, tinha que ter substituído por:document.getElementById("pop1").innerHTML = txtObrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Rodrigo Kx
então galera, o script de JS pra mostrar um pequeno calendário não funciona somente no FF..
Aqui está o código:
HTML da página:Provavelmente o erro seja na parte do 'onclick'.
Desde já, obrigado!
Editado por Rodrigo KxLink para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.