Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.04.2011, 19:31
Новичок на форуме
Отправить личное сообщение для arsenius Посмотреть профиль Найти все сообщения от arsenius
 
Регистрация: 26.03.2011
Сообщений: 3

Скрипт работает только в Google Chrome.
Имеется скрипт обратного отсчета...к сожалению работает только в хроме, и ни в каких других браузерах. Выдает наны. По логике напрашивается что где то идет деление на 0, но нет. Просьба помочь кто чем может)))
<script language="javascript">
//Скрипт обратного отсчета времени CountDown
		var eventstr = "С новым годом!"; //Эта строка выводится по окончанию отсчета
		var countdownid = document.getElementById("counterfont"); //ID элемента в который выводится время
		var full = true;
		var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
		function change(){
			full = !full;
		}
		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 todayms=today.getMilliseconds();
			var todaystring=montharray[todaym]+" "+todayd+", "+todayy+" "+todayh+":"+todaymin+":"+todaysec+"."+todayms;
			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);
			dfull=dd;
			if(dday<=0&&dhour<=0&&dmin<=0&&dsec<=1){
				countdownid.innerHTML=eventstr;
				return
			}
			else {
				var lastchar = ""+dsec;	lastchar = lastchar.substring(lastchar.length-1,lastchar.length);
				var secchar = "0"+dsec;	secchar = secchar.substring(secchar.length-2,secchar.length-1);
				var dsecstr = "секунд";
				if (lastchar=="1") { dsecstr = "секунда"; }
				if ((lastchar=="2")||(lastchar=="3")||(lastchar=="4")) { dsecstr = "секунды"; }
				if (secchar == "1") { dsecstr = "секунд"; }
	
				lastchar = ""+dmin;	lastchar = lastchar.substring(lastchar.length-1,lastchar.length);
				secchar = "0"+dmin;	secchar = secchar.substring(secchar.length-2,secchar.length-1);
				var dminstr    = "минут";
				if (lastchar=="1") { dminstr = "минута"; }
				if ((lastchar=="2")||(lastchar=="3")||(lastchar=="4")) { dminstr = "минуты"; }
				if (secchar == "1") { dminstr = "минут"; }
	
				lastchar = ""+dhour;	lastchar = lastchar.substring(lastchar.length-1,lastchar.length);
				secchar = "0"+dhour;	secchar = secchar.substring(secchar.length-2,secchar.length-1);
				var dhourstr   = "часов";
				if (lastchar=="1") { dhourstr = "час"; }
				if ((lastchar=="2")||(lastchar=="3")||(lastchar=="4")) { dhourstr = "часа"; }
				if (secchar == "1") { dhourstr = "часов"; }
	
				lastchar = ""+dday;	lastchar = lastchar.substring(lastchar.length-1,lastchar.length);
				secchar = "0"+dday;	secchar = secchar.substring(secchar.length-2,secchar.length-1);
				var ddaystr = "дней";
				if (lastchar=="1") { ddaystr = "день"; }
				if ((lastchar=="2")||(lastchar=="3")||(lastchar=="4")) { ddaystr = "дня"; }
				if (secchar == "1") { ddaystr = "дней"; }
				strfull = ""+dday+ " " +ddaystr+"  "+dhour+" "+dhourstr+" "+dmin+" "+dminstr+" и "+dsec+" "+dsecstr;
				//strms = ""+dfull+" милисекунд";
				var dfull_1 = dfull%1000;
				var dfull_2 = Math.floor(dfull/1000)%1000;
				var dfull_3 = Math.floor(dfull/1000000)%1000;
				var dfull_4 = Math.floor(dfull/1000000000)%1000;
				var dfull_5 = Math.floor(dfull/1000000000000)%1000;
				strms = "";
				var beg = false;
				if (dfull_5 > 0) {
					strms = dfull_5+"."+strms;
					beg = true;
				}
				if (beg){
					var str_4 = "" + dfull_4;
					if (dfull_4<100) {str_4 = "0" + str_4}
					strms += str_4 + ".";
				}
				else{
					if (dfull_4 > 0) {
						strms = dfull_4+"."+strms;
						beg = true;
					}
				}
				if (beg){
					var str_3 = "" + dfull_3;
					if (dfull_3<100) {str_3 = "0" + str_3}
					strms += str_3 + ".";
				}
				else{
					if (dfull_3 > 0) {
						strms = dfull_3+"."+strms;
						beg = true;
					}
				}
				if (beg){
					var str_2 = "" + dfull_2;
					if (dfull_2<100) {str_2 = "0" + str_2}
					strms += str_2 + ".";
				}
				else{
					if (dfull_2 > 0) {
						strms = dfull_2+"."+strms;
						beg = true;
					}
				}
				if (beg){
					var str_1 = "" + dfull_1;
					if (dfull_1<100) {str_1 = "0" + str_1}
					strms += str_1 + " милисекунд";
				}
				else{
					strms = dfull_2+" милисекунд";
					beg = true;
					
				}
		
				
				
				if (full) {countdownid.innerHTML=""+strfull;}
				else {countdownid.innerHTML=""+strms;}
	
			}
		setTimeout("CountDowndmn(cdyear,cdmonth,cdday)",1);
		}

		CountDowndmn(2012,1,1); //Дата отсчета
	</script>
Вложения:
Тип файла: zip index.zip (1.8 Кб, 1 просмотров)

Последний раз редактировалось arsenius, 23.04.2011 в 19:38.
Ответить с цитированием
  #2 (permalink)  
Старый 25.04.2011, 08:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 29,107

Сообщение от arsenius
dd=Date.parse(futurestring)-Date.parse(todaystring);
Строка 026 замените на
dd=Date.parse(futurestring)-today;

Строка 127 интервал сделайте 1000 а не 1 этого будет достаточно.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
скрипт на сайт под Джумлой, не работает в FF matysse Элементы интерфейса 1 11.10.2010 20:14
Сверкающая ссылка. Скрипт не работает в фаерфоксе Wukong Firefox/Mozilla 3 09.09.2010 14:09
Google Chrome Андрей Параничев Opera, Safari и др. 42 02.08.2009 13:23
Скрипт меню не работает только в Firefox somatic Firefox/Mozilla 2 28.07.2009 02:23
Скрипт, который должен листать объекты не работает. Mike Abasov jQuery 4 12.08.2008 10:16