Может ли jQuery читать / записывать файлы cookie в браузер?

99

Простой пример: я хочу, чтобы на странице были некоторые элементы (например, блоки div или строки таблицы), и я хочу, чтобы пользователь нажимал на них, чтобы выбрать их. В jQuery это кажется достаточно простым. Чтобы сохранить, какие элементы нажимает пользователь, без обратных сообщений на стороне сервера, я думал, что файл cookie будет простым способом сделать это.

  1. Верно ли это предположение о том, что в данном случае файлы cookie подходят?
  2. Если это верно, есть ли у jQuery API какой-то способ чтения / записи информации cookie, который лучше, чем API JavaScript по умолчанию?
Casademora
источник

Ответы:

52

Стандартный JavaScript "API" для установки cookie так же прост, как:

document.cookie = 'mycookie=valueOfCookie;expires=DateHere;path=/'

Используйте плагин jQuery cookie, например:

$.cookie('mycookie', 'valueOfCookie')
Адам
источник
14
Да, писать файлы cookie легко, но их чтение - своего рода боль, поскольку вам нужно разбивать строки и прочее. Если вы уже используете JQuery, то плагин cookie может быть неплохим ... При чтении файлов cookie раздражает то, что некоторые браузеры удаляют последнюю точку с запятой, а некоторые нет ... приятно, если кто-то другой обрабатывает файлы cookie. все это.
Peter Ajtai,
8
О, и плагин JQuery cookie - это всего лишь 40 строк JS ... и вы можете редактировать его по своему желанию, чтобы вам не казалось, что вы попадаете в опасную зону абстракции.
Peter Ajtai,
3
Не относится к jQuery, как просили. Комментарий Питера Аджтаи показывает, почему casademora запрашивает плагин jQuery вместо Javascript.
CallMeLaNN
4
Вот актуальная ссылка для людей,
оказавшихся
18

Вам понадобится плагин cookie, который предоставляет несколько дополнительных подписей для функции cookie.

$.cookie('cookie_name', 'cookie_value')сохраняет временный файл cookie (существует только в рамках этого сеанса, но $.cookie('cookie_name', 'cookie_value', 'cookie_expiration")создает файл cookie, который будет длиться во всех сеансах - см. http://www.stilbuero.de/2006/09/17/cookie-plugin-for-jquery/ для получения дополнительной информации в плагине JQuery cookie.

Если вы хотите установить файлы cookie, которые будут использоваться для всего сайта, вам нужно будет использовать такой JavaScript:

document.cookie = "name=value; expires=date; domain=domain; path=path; secure"
Стив Мойер
источник
1
кажется, что эта ссылка мертва на момент написания этой статьи
Марк Шультайс,
11

Новый плагин jQuery для получения файлов cookie и управления ими с привязкой к формам и т. Д .: http://plugins.jquery.com/project/cookies


источник
3
Для тех, кто читает ссылку слишком быстро, обратите внимание на 's' в конце файла cookie, чтобы этот ответ отличался от ответа Алекса Форта
Патрик
2
Вот лучшая ссылка на момент написания github.com/carhartl/jquery-cookie
Wiebe Tijsma
1
@Zidad - это не тот плагин, на который ссылается Giver Of Cookies. Тот, который он связал, теперь находится на code.google.com/p/cookies
JAAulde,
@JAAulde А, я этого не осознавал. Потому что ссылка мертва :) Спасибо!
Wiebe Tijsma
7

Чтобы ответить на ваш вопрос, да. Другой ответил на эту часть, но также кажется, что вы спрашиваете, лучший ли это способ сделать это.

Вероятно, это будет зависеть от того, что вы делаете. Обычно пользователь нажимает на то, какие товары он хочет купить (например, заказывая). Затем они нажимали кнопку покупки или оформления заказа. Затем форма отправлялась на страницу и обрабатывала результат. Вы можете сделать все это с помощью файла cookie, но мне будет сложнее.

Возможно, вы захотите опубликовать свой второй вопрос в другой теме.

Шон Дауни
источник
4

Вы можете просмотреть все плагины jQuery, помеченные как «cookie» здесь:

http://plugins.jquery.com/plugin-tags/cookies

Там множество вариантов.

Обратите внимание на то, что называется jQuery Storage, которое использует преимущества localStorage HTML5. Если localStorage недоступен, по умолчанию используются файлы cookie. Однако он не позволяет устанавливать срок действия.

Маршалл Эон
источник
4

Похоже, плагин jQuery cookie недоступен для загрузки. Однако вы можете загрузить тот же плагин jQuery cookie с некоторыми улучшениями, описанными в jQuery & Cookies (get / set / delete & a plugin) .

jQuery Lover
источник
Я также понимаю, что разработка плагина cookie остановилась на этом с момента первого выпуска, и я не уверен, совместим ли он с jQuery 1.4 *
CallMeLaNN
Плагин совместим с jQuery 1.4, поскольку расширяющий синтаксис с тех пор не изменился ...
jQuery Lover
2

Мне удалось написать сценарий, позволяющий пользователю выбирать свой язык, используя сценарий cookie от Клауса Хартла . Мне потребовалось несколько часов работы, и я надеюсь, что смогу помочь другим.

Porta Shqipe
источник