Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> innerText в Firefox 
:(
    Опции темы
Black_leopard
Дата 18.2.2007, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 18.10.2006

Репутация: нет
Всего: нет



Недавно нашел календарик, он отлично работает в ИЕ, но не работает в Firefox. Помогите исправить функцию fSetSelectedDay и fUpdateCal. 
Код

<script LANGUAGE="JavaScript">

<!-- Begin
var dDate = new Date();
var dCurMonth = dDate.getMonth();
var dCurDayOfMonth = dDate.getDate();
var dCurYear = dDate.getFullYear();
var objPrevElement = new Object();

//на onmouseover и onmouseout даты календаря
function fToggleColor(myElement) {
    var toggleColor = "#ff0000";
    if (myElement.id == "calDateText") {
        if (myElement.color == toggleColor) {
            myElement.color = "";
        } 
        else {
            myElement.color = toggleColor;
        }
    } 
    else if (myElement.id == "calCell") {
        for (var i in myElement.children) {
            if (myElement.children[i].id == "calDateText") {
                if (myElement.children[i].color == toggleColor) {
                    myElement.children[i].color = "";
                }
                else {
                    myElement.children[i].color = toggleColor;
             }
          }
       }
    }
}

//выделение выбранной даты
function fSetSelectedDay(myElement){
    if (myElement.id == "calCell") {
        if (!isNaN(parseInt(myElement.children["calDateText"].innerText))) {
            myElement.bgColor = "#0054e3";
            //myElement.style.color= "#FFFFFF";
            objPrevElement.bgColor = "";
            document.all.calSelectedDate.value = parseInt(myElement.children["calDateText"].innerText);
            objPrevElement = myElement;
      }
   }
}

//количество дней в месяце года
function fGetDaysInMonth(iMonth, iYear) {
    var dPrevDate = new Date(iYear, iMonth, 0);
    return dPrevDate.getDate();
}

//строим сам календарь
function fBuildCal(iYear, iMonth) {
    var aMonth = new Array();
    aMonth[0] = new Array(7);
    aMonth[1] = new Array(7);
    aMonth[2] = new Array(7);
    aMonth[3] = new Array(7);
    aMonth[4] = new Array(7);
    aMonth[5] = new Array(7);
    aMonth[6] = new Array(7);
    var dCalDate = new Date(iYear, iMonth-1, 1); //установили дату на нужный месяц и год первого числа
    var iDayOfFirst = dCalDate.getDay(); //номер дня недели когда первое число
    var iDaysInMonth = fGetDaysInMonth(iMonth, iYear); //количество дней в году
    var iVarDate = 1;
    var i, d, w;
    aMonth[0][0] = "Вс";
    aMonth[0][1] = "Пн";
    aMonth[0][2] = "Вт";
    aMonth[0][3] = "Ср";
    aMonth[0][4] = "Чт";
    aMonth[0][5] = "Пт";
    aMonth[0][6] = "Сб";
    for (d = iDayOfFirst; d < 7; d++) {
        aMonth[1][d] = iVarDate;
        iVarDate++;
    }
    for (w = 2; w < 7; w++) {
        for (d = 0; d < 7; d++) {
            if (iVarDate <= iDaysInMonth) {
                aMonth[w][d] = iVarDate;
                iVarDate++;
           }
        }
    }
return aMonth;
}

//вывод на экран календаря
function fDrawCal(iYear, iMonth) {
    var myMonth;
    myMonth = fBuildCal(iYear, iMonth);
    document.write("<table border='0' cellpadding='0' cellspacing='0'>")
    document.write("<tr class='Header'>");
    document.write("<td>" + myMonth[0][0] + "</td>");    
    document.write("<td>" + myMonth[0][1] + "</td>");
    document.write("<td>" + myMonth[0][2] + "</td>");
    document.write("<td>" + myMonth[0][3] + "</td>");
    document.write("<td>" + myMonth[0][4] + "</td>");
    document.write("<td>" + myMonth[0][5] + "</td>");
    document.write("<td>" + myMonth[0][6] + "</td>");
    document.write("</tr>");
    for (w = 1; w < 7; w++) {
        document.write("<tr>")
        for (d = 0; d < 7; d++) {
            document.write("<td class='Item' id=calCell style='CURSOR:Hand' onMouseOver='fToggleColor(this)' onMouseOut='fToggleColor(this)' onclick=fSetSelectedDay(this)>");
            if (!isNaN(myMonth[w][d])) {
                document.write("<font id=calDateText onMouseOver='fToggleColor(this)' style='CURSOR:Hand;' onMouseOut='fToggleColor(this)' onclick=fSetSelectedDay(this)>" + myMonth[w][d] + "</font>");
            } 
            else {
                document.write("<font id=calDateText onMouseOver='fToggleColor(this)' style='CURSOR:Hand;' onMouseOut='fToggleColor(this)' onclick=fSetSelectedDay(this)> </font>");
            }            
            document.write("</td>")
        }
        document.write("</tr>");
    }
    document.write("</table>")
}

//на select при изменение состояния месяца и года, т.е. при выборе другого
function fUpdateCal(iYear, iMonth) {
    myMonth = fBuildCal(iYear, iMonth);
    objPrevElement.bgColor = "";
    document.all.calSelectedDate.value = "";
    for (w = 1; w < 7; w++) {
        for (d = 0; d < 7; d++) {
            if (!isNaN(myMonth[w][d])) {
                calDateText[7*(w-1)+d].innerText = myMonth[w][d];
            }
            else {
                calDateText[7*(w-1)+d].innerText = " ";
         }
      }
   }
}
// End -->
</script>



Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  0004.rar 1,59 Kb
PM MAIL   Вверх
GIK
Дата 18.2.2007, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


Профиль
Группа: Участник
Сообщений: 985
Регистрация: 3.6.2005
Где: я только не небыв ал

Репутация: 6
Всего: 14



Лучше юзать innerHTML.


--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0601 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.