Javascript.RU

Работа с cookies на javascript. Как проверить что куки отключены на scriptjava.

В интернете есть множество готовых кривых скриптов на javascript для работы с кукисами.
То ли дело в PHP назначать и удалять кукисы - одно наслаждение.
Так например в книге
JavaScript: Подробное руководство
можно созерцать довольно унылое описание того как можно работать с кукисами.
Впрочем если вам нравится эта книга, можете проверить работу кода со скролбарами, размером экрана и т.д. установив рамер рабочей области в 0
Все коды в книи вылетят с ошибкой, что для меня в прочем не удивительно.

Но вернемся к кукисам.
В отличии от книги, для нас главное удобство и понятность.

Вот например как выглядет идеальная функция получения кукисов:

function getCookie(n) { 
	return unescape((RegExp(n + '=([^;]+)').exec(document.cookie) || [1, ''])[1]); 
}

Чтобы не разбираться в коде, а сразу работаь с кукисами подключите перед тегом head scriptjava фреймворк

<script type="text/javascript" src="http://scriptjava.net/source/scriptjava/scriptjava.js"></script>

Проверить что кукисы подключены можно с помощью допотопного метода

if(document.cookie) {
	alert('кукисы работают');
}

а можно прибегнуть к совершенно другому алгоритму библиотеки scriptjava

<script type="text/javascript">
//проверяю поддержку cookie
if($$c.test()) {
	alert('браузер поддерживает cookie');
}
else {
	alert('браузер не поддерживает cookie');
}
</script>

теперь как только мы проверили что браузер пользователя может работать с кукисами, можно их и установить

<script type="text/javascript">
//устанавливаю cookie
$$c.set('test', 'содержимое test', 10);
</script>

В этом коде мы установили кукисы с именем test и содержимым содержимое test на 10 секунд

Параметров может быть куда как больше
вот полный список параметров

$$c.set(Имя, Значение, Expires, Path, Domain, Secure);

Имя
Произвольное имя параметра, определенного в cookie. Здесь вы можете использовать любую строку, лишь бы в ней не было пробелов, запятых и двоеточий. В том случае, когда имя должно содержать перечисленные выше символы, используйте кодировку URL
Значение
Текстовая строка значений параметров. В этой строке не должно быть пробелов, запятых и двоеточий, поэтому вы должны использовать для нее кодировку URL
Expires
Время удаления cookie в секундах. Если время не указано, а параметр expires отсутствует, cookie будет удалено сразу после того, как браузер закончит сеанс связи с сервером Web
Path
Часть адреса URL, задающая путь к документу HTML, для которой действует данный cookie. Если этот параметр не указан, то по умолчанию используется адрес URL документа HTML, где был установлен cookie
Domain
Доменная часть адреса URL, для которой действует данный cookie. Если этот параметр не указан, то по умолчанию используется доменный адрес URL документа HTML, где был установлен cookie
Secure
Если указано это поле, данные cookie необходимо предавать только с использованием защищенного протокола SSL. Такой протокол используется серверами HTTPS

Считывать кукисы так же просто как и устанавливать:

<script type="text/javascript">
//читаю cookie
alert($$c.get('test'));
</script>

Для удаления установленных кукисов достаточно прописать такой код

<script type="text/javascript">
//удаляю cookie
$$c.erase('test');
</script>

Для изменения кукисов нужно создать новые кукисы с именем изменяемых кукисов.

+4

Автор: jegit, дата: 29 ноября, 2012 - 02:42
#permalink

не стисняйся использовать переменную "$" вместо "$$" у jQuery нет лицензии на её использование. И пересмотри идеальную функцию для получения кукисов. Желаю удачи!


Автор: Bill Gates (не зарегистрирован), дата: 16 декабря, 2012 - 03:09
#permalink

использовать $$ - очень правильное решение, фримену, думаю, и самому понятно, жругие пусть думают , спасибо за бибилотеку


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
6 + 1 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Другие записи этого автора
gordon freeman
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Популярные таги
Последние комментарии
Последние темы на форуме
Forum