Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не работает код в firefox
 
 автор: Hammer.nv   (10.02.2008 в 18:16)   письмо автору
 
 

Добрый день. Помогите переделать код,чтобы он работал в firefox.
Сам код:
<script language="javascript">
//Месяцы
var calendar_month = new Array("Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь");
//Количество дней в месяце
var calendar_monthdays = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
//Дни недели
var calendar_wkdays = new Array("Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Вс");

//Функция возвращает количество дней в месяце
//month - месяц
//year - год
function calendar_getdaysqty(month, year)
{
if (month==1) //Если февраль, то расчитываем високосные годы
return (((year%4)==0) && ((year%100)!=0))||((year%400)==0)?29:28;
else
return calendar_monthdays[month];
}//calendar_getdaysqty(month, year)

//Функция перерисовывает календарь (месяц определяется свойством calendar_currentdate таблицы calendar)
//calendar - ссылка на таблицу календаря
function calendar_newcalendar(calendar)
{
//Чистим календарь, назначаем стиль calendar_empty
for (var i=2;i<calendar.rows.length;i++)
{
for (var j=0;j<calendar.rows[i].cells.length;j++)
{
var currentcell=calendar.rows[i].cells[j];
currentcell.innerHTML='&nbsp;';
currentcell.className="calendar_empty";
currentcell.isempty=1;
}//for (var j=0;j<calendar.rows[i].cells.length;j++)
} //for (var i=2;i<calendar.rows.length;i++)

var curweek=2;//Текущая строка
var today=new Date();//Текущая дата (чтоб выделить ее в календаре)

calendar_curdate=calendar.calendar_currentdate;//Дата выводимого месяца календаря
if (calendar_curdate=="")
{
calendar_curdate= new Date();//Если дата не инициализирована, то назначаем текущий месяц
calendar.calendar_currentdate=calendar_curdate; //Запоминаем
}//if (calendar_curdate=="")

var curmonth=calendar_curdate.getMonth();//Месяц
var curyear=calendar_curdate.getYear(); //Год
var coldays=calendar_getdaysqty(curmonth,curyear);//Количество дней в месяце

for (var i=1; i<=coldays;i++) //Цикл по дням месяца
{
curdate= new Date(curyear,curmonth,i);//Формируем дату
if ((curdate.getYear()>today.getYear()))
{
var weekday=curdate.getDay()-1; //Смотрим день недели
if (weekday==-1) weekday=6; //У пиндосов неделя начинается с воскресенья (вот идиоты блин)
var currentcell=calendar.rows[curweek].cells[weekday]; //Текущая ячейка в таблице
if (weekday==6) curweek++; //Если дошли до воскресенья, то дальше будем в следующей строке выводить
currentcell.innerText=i; //Выводим дату
if ((curdate.getDate()==today.getDate())&&(curdate.getYear()==today.getYear())&&(curdate.getMonth()==today.getMonth())) //Если это сегодня
currentcell.className="calendar_today"; //Присваиваем соотв. стиль
else
currentcell.className="calendar_day"; //Присваиваем соотв стиль
currentcell.year=curyear; //Присваиваем аттрибуты ячейки, чтоб потом прочитать
currentcell.month=curmonth;
currentcell.day=i;
currentcell.isempty=0; //Говорим что она не пустая
}

if ((curdate.getMonth()>today.getMonth())&(curdate.getYear()==today.getYear()))
{
var weekday=curdate.getDay()-1; //Смотрим день недели
if (weekday==-1) weekday=6; //У пиндосов неделя начинается с воскресенья (вот идиоты блин)
var currentcell=calendar.rows[curweek].cells[weekday]; //Текущая ячейка в таблице
if (weekday==6) curweek++; //Если дошли до воскресенья, то дальше будем в следующей строке выводить
currentcell.innerText=i; //Выводим дату
if ((curdate.getDate()==today.getDate())&&(curdate.getYear()==today.getYear())&&(curdate.getMonth()==today.getMonth())) //Если это сегодня
currentcell.className="calendar_today"; //Присваиваем соотв. стиль
else
currentcell.className="calendar_day"; //Присваиваем соотв стиль
currentcell.year=curyear; //Присваиваем аттрибуты ячейки, чтоб потом прочитать
currentcell.month=curmonth;
currentcell.day=i;
currentcell.isempty=0; //Говорим что она не пустая
}
if ((curdate.getDate()>=today.getDate())&&(curdate.getMonth()==today.getMonth())&(curdate.getYear()==today.getYear()))
{
var weekday=curdate.getDay()-1; //Смотрим день недели
if (weekday==-1) weekday=6; //У пиндосов неделя начинается с воскресенья (вот идиоты блин)
var currentcell=calendar.rows[curweek].cells[weekday]; //Текущая ячейка в таблице
if (weekday==6) curweek++; //Если дошли до воскресенья, то дальше будем в следующей строке выводить
currentcell.innerText=i; //Выводим дату
if ((curdate.getDate()==today.getDate())&&(curdate.getYear()==today.getYear())&&(curdate.getMonth()==today.getMonth())) //Если это сегодня
currentcell.className="calendar_today"; //Присваиваем соотв. стиль
else
currentcell.className="calendar_day"; //Присваиваем соотв стиль
currentcell.year=curyear; //Присваиваем аттрибуты ячейки, чтоб потом прочитать
currentcell.month=curmonth;
currentcell.day=i;
currentcell.isempty=0; //Говорим что она не пустая
}//for (var i=1; i<=coldays;i++) //Цикл по дням месяца

}
calendar.rows[0].cells[1].innerText=calendar_month[curmonth]+' '+curyear; //Выводим в заголовке месяц и год
}//calendar_newcalendar(calendar)

//Функция сдвигает текущую дату календаря на указанное в colmonth количество месяцев и перерисовывает его
//colmonth - количество месяцев
//cell - ссылка на ячейку внутри таблицы календаря или саму таблицу
function calendar_movemonth(colmonth,cell)
{
//Находим таблицу календаря
calendar=cell;
while (calendar.tagName!="TABLE")
{
calendar=calendar.parentElement;//Передвигаемся вверх по иерархии
if (calendar.tagName=="HTML")//Если уже вышли на самый верх, то ошибка
{
window.alert("Ошибка! Не найдена таблица.");
return;
}//if (calendar.tagName=="HTML")
}// while (calendar.tagName!="TABLE")
calendar_curdate=calendar.calendar_currentdate;//Дата выводимого в календаре месяца
var curmonth=calendar_curdate.getMonth(); //Месяц
var curyear=calendar_curdate.getYear(); //Год
curmonth=curmonth+colmonth; //Добавляем месяцы
calendar_curdate = new Date(curyear,curmonth,1); //Строим дату снова
calendar.calendar_currentdate=calendar_curdate; //Записываем в календарь
calendar_newcalendar(calendar); //Перерисовываем
}//calendar_movemonth(colmonth)

//Функция вызывается при щелчке на определенной дате
//cell - Ссылка на ячейку таблицы
//у cell аттрибуты: year - год, month - месяц, day - день
function calendar_clickday(cell)
{
var time=new Date();
var date=time.getDate();
if (cell.isempty==1) return; //Если ячейка пустая, то ничего не делаем
//Что-нибудь делаем
calendar=cell;
while (calendar.tagName!="TABLE")
{
calendar=calendar.parentElement;//Передвигаемся вверх по иерархии
if (calendar.tagName=="HTML")//Если уже вышли на самый верх, то ошибка
{
window.alert("Ошибка! Не найдена таблица.");
return;
}//if (calendar.tagName=="HTML")
}// while (calendar.tagName!="TABLE")
calendar.calendar_currentdate=new Date(cell.year,cell.month,cell.day);//рисваиваем аттрибуту calendar_currentdate выбранную дату
// calendar.className="calendarhidden"; //Скрываем таблицу
if (calendar.Element!=null) //Это типа примера

window.opener.document.getElementById('mydate').style.display = 'block';
window.opener.document.getElementById('versandauswahl').disabled=true;
var
day = calendar.calendar_currentdate.getDate();
if (day < 10) day = "0" + day;
month = calendar.calendar_currentdate.getMonth() + 1;
if (month < 10) month = "0" + month;
year = calendar.calendar_currentdate.getYear();
if (year < 10) year = "0" + year;
window.opener.document.getElementById('my').value=day+"."+month+"."+year;
window.close();

//calendar.Element.value=calendar.calendar_currentdate;


}//calendar_clickday(cell)

//Функция создает структуру календаря
//calendar - ссылка на объект типа таблица
//initdate - начальная дата
//Element - элемент типа INPUT под которым вывести календарь, не обязательный реквизит
function calendar_init(calendar, initdate, Element)
{
if (calendar.tagName!="TABLE") return -1;//Если это не таблица то все плохо
//Чистим ее
calendar.deleteTHead(); //Удаляем заголовок
calendar.deleteTFoot(); //Удаляем подвал
for (var i=0; i<calendar.rows.length;i++) calendar.deleteRow(1); //Удаляем все строки

calendar.insertRow(); //Вставляем первую строчку
for (var j=0;j<3;j++) //3 ячейки
calendar.rows[0].insertCell();
//стрелка Предыдущий месяц
calendar.rows[0].cells[0].innerText="<";//Текст
calendar.rows[0].cells[0].className="calendar_headerarrow";//Стиль
calendar.rows[0].cells[0].onclick=new Function("calendar_movemonth(-1,this);");//Событие
//Строка с текстом текущего месяца - года
calendar.rows[0].cells[1].id='calendar_currentmonth';//Идентфикатор
calendar.rows[0].cells[1].colSpan=5; //расширить на 5 ячеек
calendar.rows[0].cells[1].className="calendar_header";//Стиль
//стрелка Слеующий месяц
calendar.rows[0].cells[2].innerText=">";//Текст
calendar.rows[0].cells[2].className="calendar_headerarrow";//Стиль
calendar.rows[0].cells[2].onclick=new Function("calendar_movemonth(1,this);");//Событие
//Строчка с днями недели
calendar.insertRow();
for (var j=0;j<7;j++)//Встявляем 7 ячеек
{
calendar.rows[1].insertCell();
calendar.rows[1].cells[j].innerText=calendar_wkdays[j];//Текст
calendar.rows[1].cells[j].className="calendar_header";//Стиль
}//for (var j=0;j<7;j++)

for (var i=2;i<8;i++)//Вставляем 6 строчек по 7 ячеек (основную таблицу календаря)
{
calendar.insertRow();
for (var j=0;j<7;j++)
{
calendar.rows[i].insertCell();

calendar.rows[i].cells[j].onclick=new Function("calendar_clickday(this);");//Событие
}//for (var j=0;j<7;j++)
}//for (var i=2;i<8;i++)
//Устанавливаем размеры
calendar.cellSpacing=0;
calendar.cellPadding=0;
//Позиционируем под элементом
if (Element!=null)
{
calendar.Element=Element;
calendar.style.posLeft=Element.offsetLeft+10;
calendar.style.posTop=Element.offsetTop+Element.height+10;
}
else
calendar.Element=null;
calendar.className="calendar";
if (initdate!=null)
calendar.calendar_currentdate=initdate;//Инициализируем дату календаря
else
calendar.calendar_currentdate=new Date();
calendar_newcalendar(calendar); //Заполняем календарь
}//calendar_init(calendar, initdate)
</script>
<body bgcolor="#F3F3F3">
<center>
<table id="calendar_MainTable" class="calendarhidden">
</table>
<input name="ddd" id="ddd" type="hidden">
</center>
</body>
<script language="javascript">
calendar_init(document.all.calendar_MainTable, new Date(), ddd);
</script>

Т.е код калькулятора. Буду очень благодарен,если поможете.

   
 
 автор: Hammer.nv   (11.02.2008 в 11:34)   письмо автору
 
   для: Hammer.nv   (10.02.2008 в 18:16)
 

вот какая ошибка
Ошибка: calendar.rows[0].cells[1] has no properties
сам код: calendar.rows[0].cells[1].innerText=calendar_month[curmonth]+' '+curyear;

   
 
 автор: Hammer.nv   (11.02.2008 в 11:52)   письмо автору
 
   для: Hammer.nv   (11.02.2008 в 11:34)
 

Описка выше. Не "калькулятора",а "календаря".

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования