jQuery可以将Cookie读取/写入浏览器吗?


99

一个简单的例子:我想在页面上有一些项目(例如div或表行),并且我想让用户单击它们以选择它们。在jQuery中,这似乎很容易。为了保存用户单击的项目而没有服务器端回发,我认为cookie是完成此操作的一种简单方法。

  1. 在这种情况下,这种cookie是否正确的假设正确吗?
  2. 如果正确,那么jQuery API是否可以通过某种方式来读取/写入比默认JavaScript API更好的cookie信息?

Answers:


52

设置cookie的默认JavaScript“ API”非常简单:

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

使用jQuery cookie插件,例如:

$.cookie('mycookie', 'valueOfCookie')

14
是的,编写cookie很容易,但是阅读它们有点痛苦,因为您必须拆分字符串和内容。如果您已经在使用JQuery,那么cookie插件可能会很棒……关于读取cookie的一件令人讨厌的事情是,某些浏览器会删除最终的分号,而有些浏览器则不会....所有这些。
Peter Ajtai

8
哦,JQuery cookie插件只有40行JS ...,您可以根据需要对其进行编辑,这样您就不会感觉自己正在进入抽象危险区域。
Peter Ajtai

3
与jQuery无关。彼得·阿杰泰(Peter Ajtai)的评论表明,为什么卡萨德莫拉(casademora)要求使用jQuery插件而不是Javascript。
CallMeLaNN

4
这是最新的链接,这些链接的人最终死于死链接或发生故障的plugins.jquery.com网站:github.com/carhartl/jquery-cookie
Wiebe Tijsma 2012年

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
似乎此链接在撰写本文时已失效
Mark Schultheiss 2012年

11

一个新的jQuery插件,用于cookie检索和操作以及对表单等的绑定:http : //plugins.jquery.com/project/cookies


3
对于那些读链接太快的人,请注意cookie末尾的“ s”,以使其与Alex Fort
Patrick Patrick


1
@Zidad与通过Giver Of Cookies链接的插件不同。他链接的链接现在位于code.google.com/p/cookies
JAAulde

@JAAulde啊,我没有意识到。因为链接已死:)谢谢!
Wiebe Tijsma

7

要回答您的问题,是的。另一个回答了这一部分,但似乎您正在问这是否是最好的方法。

这可能取决于您在做什么。通常,您会让用户单击他们想要购买的商品(例如订购)。然后,他们将点击购买或结帐按钮。然后,表单将发送到页面并处理结果。您可以使用Cookie来完成所有这些操作,但我会发现它更加困难。

您可能要考虑在另一个主题中发布第二个问题。



4

您可以在此处浏览所有标记为“ cookie”的jQuery插件:

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

那里有很多选择。

看看一种叫做jQuery Storage的方法,它利用了HTML5的localStorage。如果localStorage不可用,则默认为cookie。但是,它不允许您设置过期时间。



2

我设法编写了一个脚本,允许用户使用Klaus Hartl的cookie脚本来选择他/她的语言。我花了几个小时工作,希望我能帮助别人。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.