Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: А.В. Фролов, Г.В. Фролов - Сценарии JavaScript в активных страницах Web
<<-[Весь Текст]
Страница: из 116
 <<-
 
енарии JavaScript
   Второй способ предполагает использование свойства document.cookie. Это 
свойство мы упомянули, рассказывая о свойствах и методах объекта document, 
создаваемого для документа HTML, загруженного в окно браузера.
   В общем виде сценарий JavaScript может создать cookie следующим образом:
document.cookie = 
  “Имя=Значение; 
   Здесь мы просто записываем в свойство cookie объекта document текстовую 
строку, определяющую cookie.
   Для пересчета текущей даты в формат GMT в сценариях JavaScript можно 
использовать встроенные функции, о чем мы скоро расскажем.
   В качестве примера приведем исходный текст функции addCookie, которую мы 
будем использовать в своих сценариях для создания cookie:
function addCookie(szName,szValue,dtDaysExpires) 
{
   var dtExpires = new Date();
   var dtExpiryDate = "";

   dtExpires.setTime(dtExpires.getTime() + 
     dtDaysExpires * 24 * 60 * 60 * 1000);

   dtExpiryDate = dtExpires.toGMTString();

   document.cookie = 
    szName + "=" + szValue + "; expires=" + dtExpiryDate;
}
   Функция addCookie получает три параметра.
   Через параметр szName передается имя параметра, хранящегося в cookie. 
Параметр szValue определяет значение этого параметра cookie. Что же касается 
последнего параметра с именем dtDaysExpires, то он задает интервал времени по 
отношению к моменту создания cookie, когда этот cookie необходимо удалить.
   Самое сложное в функции addCookie - это определение даты удаления cookie и 
преобразование этой даты в формат GMT. Данная задача решается следующим образом.

   Прежде всего функция addCookie создает объект класса Date с помощью 
ключевого слова new:
var dtExpires = new Date();
   Записанная таким образом в переменную dtExpires дата соответствует моменту 
вызова функции addCookie.
   Далее с помощью метода getTime функция addCookie определяет текущую дату в 
миллисекундах и прибавляет к результату значение параметра dtDaysExpires, 
полученное функцией, умноженное на константу (24 * 60 * 60 * 1000):
dtExpires.getTime() + dtDaysExpires * 24 * 60 * 60 * 1000
   Константа представляет собой количество часов в сутках, умноженное на 
количество минут в часе, затем на количество секунд в минуте, и, наконец, на 
количество миллисекунд в секунде.
   Результат вычислений записывается при помощи метода setTime в переменную 
даты dtExpires. Теперь здесь хранится дата автоматического уничтожения cookie 
браузером. Осталось лишь преобразовать эту дату в формат GMT.
   Такое преобразование нетрудно сделать с помощью специально предназначенного 
для этого метода toGMTString, возвращающего текстовую строку в нужном нам 
формате:
dtExpiryDate = dtExpires.toGMTString();
   Теперь нам остается только сформировать текстовую строку определения cookie 
и записать ее в свойство document.cookie:
document.cookie = 
  szName + "=" + szValue + "; expires=" + dtExpiryDate;
   На этом создание cookie завершено. 
   Теперь, когда в вашем распоряжении есть функция addCookie, создание cookie 
представляет собой очень простую задачу. Например, в следующей строке мы 
создаем cookie с именем Count, значением 0, причем через 10 дней браузер 
автоматически удалит этот cookie:
addCookie("Count","0",10);
   При необходимости использования других параметров cookie, таких как path или 
domain, вы можете немного дополнить текст функции addCookie. С этой задачей вы 
легко справитесь самостоятельно.
  Получение значения cookie
   Итак, вы научились создавать cookie в сценариях JavaScript. Теперь решим 
другую задачу - определение значения параметров cookie.
   Эта задача сводится к простому сканированию текстовой строки, полученной 
следующим образом: 
var szCookieString = document.cookie;  
   В этой строке вам нужно найти подстроку “Имя=Значение;”, а затем извлечь 
полученное значение.
   Для облегчения этой работы вы можете воспользоваться функцией findCookie. 
Исходный текст этой функции приведен ниже:
function findCookie(szName) 
{
  var i = 0;
  var nStartPosition = 0;
  var nEndPosition = 0;  
  var szCookieString = document.cookie;  

  while(i <= szCookieString.length) 
  {
    nStartPosition = i;
    nEndPosition = nStartPosition + szName.length;

    if(szCookieString.substring( 
        nStartPosition,nEndPosition) == szName) 
    {
      nStartPosition = nEndPosition + 1;
      nEndPosition = 
        document.cookie.indexOf(";",nStartPosition);

      if(nEndPosition < nStartPosition)
        nEndPosition = document.cookie.length;

      return document.cookie.substring( 
          nStartPosition,nEndPosition);  
      break;    
    }
    i++;  
  }
  return "";
}
   После извлечения строки из свойства document.cookie и записи этой строки в 
переменную szCookieString функция findCookie организует цикл по всем символам 
этой строки. Условием завершения цикла является просмотр всех szCookieString.
length символов.
   Сравнивая имя параметра с подстрокой, извлеченной из строки szCookieString 
при помощи метода substring, функция findCookie пытается найти нужный параметр. 
Если такая попытка оказывается успешной, функция findCookie пропускает символ 
присваивания, извлекая значение параметра, ограниченное символом точка с 
запятой. Это значение возвращается функцией findCookie.
   Если же поиск оказывается неу
 
<<-[Весь Текст]
Страница: из 116
 <<-