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

HTML+CSS+JavaScript

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Переход (переадресация) на закладку в зависимости от даты

Сообщения:  [1-8] 

 
 автор: Vik_Tor   (28.05.2006 в 19:48)   письмо автору
 
   для: Vik_Tor   (19.05.2006 в 12:43)
 

Миши кололись, плакали, но продолжали упорно есть кактус...

После откапывания указанных выше собак позитивный результат не имеет место быть :((
Последняя версия:

<html><head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>
<title>Календарь</title>

<script language="JavaScript">

function GoToEventDate() {

// get today's date 
var today = new Date(); 

// get today's day 
var day = today.getDate(); 

// get today's month 
var month = today.getMonth()+1;

// массив с датами событий 
var DayOfEvent = new Array();
DayOfEvent[0] = 5;
DayOfEvent[1] = 20;
DayOfEvent[2] = 25;
DayOfEvent[3] = 9;
DayOfEvent[4] = 9;
DayOfEvent[5] = 19;
DayOfEvent[6] = 19;
DayOfEvent[7] = 25;
DayOfEvent[8] = 1;
DayOfEvent[9] = 1;
DayOfEvent[10] = 5;
DayOfEvent[11] = 15;
DayOfEvent[12] = 20;
DayOfEvent[13] = 10;
DayOfEvent[14] = 10;
DayOfEvent[15] = 20;
DayOfEvent[16] = 20;
DayOfEvent[17] = 1;
DayOfEvent[18] = 5;
DayOfEvent[19] = 20;
DayOfEvent[20] = 9;
DayOfEvent[21] = 9;
DayOfEvent[22] = 19;
DayOfEvent[23] = 19;
DayOfEvent[24] = 1;
DayOfEvent[25] = 1;
DayOfEvent[26] = 5;
DayOfEvent[27] = 20;
DayOfEvent[28] = 10;
DayOfEvent[29] = 10;
DayOfEvent[30] = 20;
DayOfEvent[31] = 20;

// массив с месяцами событий
var MonthOfEvent = new Array();
MonthOfEvent[0] = 1;
MonthOfEvent[1] = 1;
MonthOfEvent[2] = 1;
MonthOfEvent[3] = 2;
MonthOfEvent[4] = 2;
MonthOfEvent[5] = 2;
MonthOfEvent[6] = 2;
MonthOfEvent[7] = 2;
MonthOfEvent[8] = 3;
MonthOfEvent[9] = 4;
MonthOfEvent[10] = 4;
MonthOfEvent[11] = 4;
MonthOfEvent[12] = 4;
MonthOfEvent[13] = 5;
MonthOfEvent[14] = 5;
MonthOfEvent[15] = 5;
MonthOfEvent[16] = 5;
MonthOfEvent[17] = 7;
MonthOfEvent[18] = 7;
MonthOfEvent[19] = 7;
MonthOfEvent[20] = 8;
MonthOfEvent[21] = 8;
MonthOfEvent[22] = 8;
MonthOfEvent[23] = 8;
MonthOfEvent[24] = 9;
MonthOfEvent[25] = 10;
MonthOfEvent[26] = 10;
MonthOfEvent[27] = 10;
MonthOfEvent[28] = 11;
MonthOfEvent[29] = 11;
MonthOfEvent[30] = 11;
MonthOfEvent[31] = 11;

   if (document.location.toString().indexOf('#') = -1) {  // проверка, существует ли в адресе ссылка на закладку внутри старницы, то есть скрипт уже отработал
        for (var i = 0; i<DayOfEvent.length; i++) {
            if (day <= DayOfEvent[i] && month <= MonthOfEvent[i]) { // после перехода на запись, отвечающую следующей, после сегодняшней, дате - переходим на закладку этой даты
                window.location = document.location.toString() + "#d" + DayOfEvent[i] + "_" + MonthOfEvent[i];
                return true;
                }
        }
    window.location = document.location.toString() + "#d" + DayOfEvent[0] + "_" + MonthOfEvent[0]; // если до конца массива ничего не нашли, переходим на первую закладку, отвечающую певой дате
    return true;
  }
}

</script>


</head>
<body  OnLoad = GoToEventDate()>
<H4> <a name='d5_1'></a>Событие 1</H4>
<H4> <a name='d20_1'></a>Событие 2</H4>
<H4> <a name='d25_1'></a>Событие 3</H4>
...
</body>
</html>

   
 
 автор: Vik_Tor   (19.05.2006 в 12:43)   письмо автору
 
   для: Бог Зайцев   (16.05.2006 в 00:12)
 

Большое Спасибо за помощь.
Грызем гранит JS дальше :))
О результатах сообщу

   
 
 автор: Бог Зайцев   (16.05.2006 в 00:12)   письмо автору
 
   для: Vik_Tor   (14.05.2006 в 19:21)
 

Собака была зверски зарыта вот здесь:

  if (day <= DayOfEvent(i) ) && (month <= MonthOfEvent(i))

Вырывается вот так:

  if (day <= DayOfEvent[i]  && month <= MonthOfEvent[i])

Upd:
Омг, у тебя там собачье кладбище )
Вместо
var MonthOfEvent = NewAray();

Пишем
var MonthOfEvent  = new Array(); 

И вообще убираем смачную конструкцию "NewAray();" со всего документа

Дальше я лезть не стал, но:
1. Обрати внимание на регистр в названиях функций, например правильно: indexOf()
2. Перестань использовать круглые скобки для массивов, они пригодятся тебе для функций еще: DayOfEvent(i) =>> DayOfEvent[i]
3. Если ищешь что-то в document.location, оно должно быть строчкой, правильно:
 document.location.toString().indexOf('#')


-)

   
 
 автор: slamor   (15.05.2006 в 19:34)   письмо автору
 
   для: Vik_Tor   (14.05.2006 в 19:21)
 

Полностью в скрипт не вникал, но имена закладок должны начинаться не с цифры,
а например: #a23_11 или #d23m11
но не #23_11 это точно не сработает - можете просто набрать в адресной строке и проверить.

   
 
 автор: Vik_Tor   (14.05.2006 в 19:21)   письмо автору
 
   для: codexomega   (09.05.2006 в 21:51)
 

Конечный результат попыток:


<script language="JavaScript">

function GoToEventDate() {

// get today's date 
var today = new Date(); 

// get today's day 
var day = today.getDate(); 

// get today's month 
var month = today.getMonth()+1;

// массив с датами событий 
var DayOfEvent = NewAray();
DayOfEvent[0] = 5;
DayOfEvent[1] = 20;
DayOfEvent[2] = 25;
DayOfEvent[3] = 9;
DayOfEvent[4] = 9;
DayOfEvent[5] = 19;
DayOfEvent[6] = 19;
DayOfEvent[7] = 25;
DayOfEvent[8] = 1;
DayOfEvent[9] = 1;
DayOfEvent[10] = 5;
DayOfEvent[11] = 15;
DayOfEvent[12] = 20;
DayOfEvent[13] = 10;
DayOfEvent[14] = 10;
DayOfEvent[15] = 20;
DayOfEvent[16] = 20;
DayOfEvent[17] = 1;
DayOfEvent[18] = 5;
DayOfEvent[19] = 20;
DayOfEvent[20] = 9;
DayOfEvent[21] = 9;
DayOfEvent[22] = 19;
DayOfEvent[23] = 19;
DayOfEvent[24] = 1;
DayOfEvent[25] = 1;
DayOfEvent[26] = 5;
DayOfEvent[27] = 20;
DayOfEvent[28] = 10;
DayOfEvent[29] = 10;
DayOfEvent[30] = 20;
DayOfEvent[31] = 20;



// массив с месяцами событий
var MonthOfEvent = NewAray();
MonthOfEvent[0] = 1;
MonthOfEvent[1] = 1;
MonthOfEvent[2] = 1;
MonthOfEvent[3] = 2;
MonthOfEvent[4] = 2;
MonthOfEvent[5] = 2;
MonthOfEvent[6] = 2;
MonthOfEvent[7] = 2;
MonthOfEvent[8] = 3;
MonthOfEvent[9] = 4;
MonthOfEvent[10] = 4;
MonthOfEvent[11] = 4;
MonthOfEvent[12] = 4;
MonthOfEvent[13] = 5;
MonthOfEvent[14] = 5;
MonthOfEvent[15] = 5;
MonthOfEvent[16] = 5;
MonthOfEvent[17] = 7;
MonthOfEvent[18] = 7;
MonthOfEvent[19] = 7;
MonthOfEvent[20] = 8;
MonthOfEvent[21] = 8;
MonthOfEvent[22] = 8;
MonthOfEvent[23] = 8;
MonthOfEvent[24] = 9;
MonthOfEvent[25] = 10;
MonthOfEvent[26] = 10;
MonthOfEvent[27] = 10;
MonthOfEvent[28] = 11;
MonthOfEvent[29] = 11;
MonthOfEvent[30] = 11;
MonthOfEvent[31] = 11;

// проверка, существует ли в адресе ссылка на закладку внутри страницы, то есть скрипт уже отработал
  if (document.location.indexof("#")=-1) {  
        for (var i = 0; i<DayOfEvent.length; i++) {
// после перехода на запись, отвечающую следующей, после сегодняшней, дате - переходим на закладку этой даты
            if (day <= DayOfEvent(i) ) && (month <= MonthOfEvent(i)) { 
                document.location = document.location  + "#" + DayOfEvent(i) + "_" + MonthOfEvent(i);
                return true;
                }
        }
// если до конца массива ничего не нашли, переходим на первую закладку, отвечающую певой дате в году
    document.location = document.location + "#" + DayOfEvent(0) + "_" + MonthOfEvent(0); 
    return true;
  }
}

</script>


Не работает :(((
Подскажите, где зарыта собака?

   
 
 автор: Vik_Tor   (09.05.2006 в 22:00)   письмо автору
 
   для: codexomega   (09.05.2006 в 21:51)
 

Спасибо за ответ, завтра пропробую.

   
 
 автор: codexomega   (09.05.2006 в 21:51)   письмо автору
 
   для: Vik_Tor   (07.05.2006 в 22:25)
 

Если все закладки, или ссылки, занести в массив, упорядочив по дате, тогда можно в цикле сравнивать дату закладки с сегодняшней датой.

Скажем, черновик будет выглядеть так:

var links = new Array("01/05/2006","02/05/2006","03/05/2006");

// get today's date
var today = new Date();

// get today's day
var day = today.getDate();

// get today's month
var month = today.getMonth()+1;

// get today's year
var year = today.getYear();



for(i=0; i<links.length-1; i++){
   if(links[i] == todayString){
      document.location="www.today.com";
   else
      document.location="www.tomorrow.com";
   }
}

   
 
 автор: Vik_Tor   (07.05.2006 в 22:25)   письмо автору
 
 

Уважаемый All!

Подскажите, пожалуйста, решение для следующего случая:

1. На странице в наличии ряд закладок тима dd_mm, где dd - дата, mm - номер месяца для ряда (несколько десятков) ежегодных событий.
2. Необходимо при загрузке этой страницы переходить на закладку следующего события по времени, а при отсутствии событий от текущей даты до конца года - на первое событие года.
3. Возможно, стоит продублировать имена заукладок в массиве...

Подозреваю, что решение довольно-таки простое, но в JavaScript я не силен :((

Заранее благодарен за помощь

   

Сообщения:  [1-8] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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