Mont1
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Здравствуйте. Столкнулся с такой проблемой. Задача. В таблице, в одной из ячеек, находится счётчик обратного отсчёта времени. Когда счётчик проходит отметку в ноль (то есть когда наступает момент Ч), фон ячейки меняет свой цвет. Должно работать в браузере IE. У меня возникла проблема с установкой цвета ячейки. Упрощённый код страницы Код: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title>Таймер обратного отсчета</title> </head> <body> <table border="1" id="color_table"> <tbody> <tr><td id="t1"><DIV align="center" ID="countdown"></DIV></td><td>Другая ячейка</td></tr> </tbody> </table> <SCRIPT src="countdown.js" type="text/javascript" language="javascript"></SCRIPT> </body> </html> | Код скрипта (Время Ч задаётся в последней строчки скрипта Код: //Скрипт обратного отсчета времени CountDown var countdownid = document.getElementById("countdown"); //ID элемента в который выводится время var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"); //функция замены цвета function backColor(idCell) { if (document.all) eval('document.all.'+idCell+'.style.background = "#FF0000"'); else eval('document.getElementById("' + idCell + '").style.background = "#FF0000"') } function CountDowndmn(yr,m,d){ cdyear=yr; cdmonth=m; cdday=d; var today=new Date(); var todayy=today.getYear(); if (todayy < 1000) todayy+=1900; var todaym=today.getMonth(); var todayd=today.getDate(); var todayh=today.getHours(); var todaymin=today.getMinutes(); var todaysec=today.getSeconds(); var todaystring=montharray[todaym]+" "+todayd+", "+todayy+" "+todayh+":"+todaymin+":"+todaysec; futurestring=montharray[m-1]+" "+d+", "+yr dd=Date.parse(futurestring)-Date.parse(todaystring); dday=Math.floor(dd/(60*60*1000*24)*1); dhour=Math.floor((dd%(60*60*1000*24))/(60*60*1000)*1); dmin=Math.floor(((dd%(60*60*1000*24))%(60*60*1000))/(60*1000)*1); dsec=Math.floor((((dd%(60*60*1000*24))%(60*60*1000))%(60*1000))/1000*1); var lastchar = ""+dsec; lastchar = lastchar.substring(lastchar.length-1,lastchar.length); lastchar = ""+dmin; lastchar = lastchar.substring(lastchar.length-1,lastchar.length); lastchar = ""+dhour; lastchar = lastchar.substring(lastchar.length-1,lastchar.length); lastchar = ""+dday; lastchar = lastchar.substring(lastchar.length-1,lastchar.length); var ddaystr = ""; ddaystr == ""; if(dday<=0&&dhour<=0&&dmin<=0&&dsec<=0){ prefiks = "-"; dhour = (-1)*dhour; dmin = (-1)*dmin; dsec = (-1)*dsec; dday = (-1)*dday; backColor('t1')";// Меняет цвет фона ячейки } else { prefiks = "";} if (dday >0) { ddaystr= "" + dday + "д. "; }; countdownid.innerHTML=""+prefiks + ddaystr+dhour+":"+dmin+":"+dsec; setTimeout("CountDowndmn(cdyear,cdmonth,cdday)",1000); } CountDowndmn(2014,11,05); //Дата отсчета: год, месяц, число | Если убрать строчку backColor('t1')"; то счётчик обратного отсчёта работает корректно. Если подключить эту строчку, которая должна менять цвет фона ячейки - почему-то ничего не работает... Ещё выложил html и js файлы на файлообменник https://yadi.sk/d/gifYrbKNcXY2e Буду благодарен за помощь. |