jQuery 可以将 cookie 读/写到浏览器吗?

Posted

技术标签:

【中文标题】jQuery 可以将 cookie 读/写到浏览器吗?【英文标题】:Can jQuery read/write cookies to a browser? 【发布时间】:2010-09-10 20:19:54 【问题描述】:

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

    在这种情况下是否假设 cookie 正常,对吗? 如果正确,jQuery API 是否有某种方式可以读取/写入比默认 javascript API 更好的 cookie 信息?

【问题讨论】:

【参考方案1】:

用于设置 cookie 的默认 JavaScript “API”很简单:

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

使用 jQuery cookie 插件,例如:

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

【讨论】:

是的,写 cookie 很容易,但阅读它们有点痛苦,因为你必须拆分字符串和东西。如果您已经在使用 JQuery,那么 cookie 插件可能会很好......阅读 cookie 的一个烦人的事情是有些浏览器会删除最后的分号,而有些则不会......很高兴让其他人处理所有这些。 哦,JQuery cookie 插件只有 40 行 JS……而且您可以根据自己的需要对其进行编辑,这样您就不会觉得自己进入了抽象危险区。 按要求与 jQuery 无关。 Peter Ajtai 评论说明了为什么 casademora 要求使用 jQuery 插件而不是 Javascript。 这里是最后链接到死链接或出现故障的 plugins.jquery.com 站点的人的最新链接:github.com/carhartl/jquery-cookie【参考方案2】:

您需要 cookie 插件,它为 cookie 函数提供了几个额外的签名。

$.cookie('cookie_name', 'cookie_value') 存储一个临时 cookie(仅存在于此会话的范围内,而 $.cookie('cookie_name', 'cookie_value', 'cookie_expiration") 创建一个跨会话持续存在的 cookie - 有关 JQuery cookie 插件的更多信息,请参阅http://www.stilbuero.de/2006/09/17/cookie-plugin-for-jquery/。

如果您想设置用于整个网站的 cookie,您需要像这样使用 JavaScript:

document.cookie = "name=value; expires=date; domain=domain; path=path; secure"

【讨论】:

在撰写本文时此链接似乎已失效【参考方案3】:

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

【讨论】:

对于任何阅读链接过快的人,请注意 cookie 末尾的“s”,以使其与 Alex Fort 的答案不同 在撰写本文时这里有一个更好的链接github.com/carhartl/jquery-cookie @Zidad 与 Giver Of Cookies 链接的插件不同。他链接的那个现在是code.google.com/p/cookies @JAAulde 啊,我没有意识到这一点。因为链接已失效:) 谢谢!【参考方案4】:

回答你的问题,是的。其他人已经回答了这部分,但您似乎也在问这是否是最好的方法。

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

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

【讨论】:

【参考方案5】:

看看 jQuery 的 Cookie Plugin。

【讨论】:

【参考方案6】:

你可以在这里浏览所有带有“cookie”标签的jQuery插件:

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

那里有很多选择。

查看一个名为 jQuery Storage 的工具,它利用了 html5 的 localStorage。如果 localStorage 不可用,则默认为 cookie。但是,它不允许您设置过期时间。

【讨论】:

【参考方案7】:

jQuery cookie 插件似乎无法下载。但是,您可以下载相同的 jQuery cookie 插件,并在 jQuery & Cookies (get/set/delete & a plugin) 中描述了一些改进。

【讨论】:

我也意识到,cookie插件的开发从第一次发布就停止了,不确定它是否兼容jQuery 1.4* 该插件兼容 jQuery 1.4,因为从那时起扩展语法没有改变...【参考方案8】:

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

【讨论】:

以上是关于jQuery 可以将 cookie 读/写到浏览器吗?的主要内容,如果未能解决你的问题,请参考以下文章

session和cookie区别

Cookie的存储读取删除修改 (cookie.Expires读取永远是零时间)

使文件指针读/写到内存中的位置

将 Cookie 添加到简单的 jQuery 函数 [重复]

java web的Cookie

Flask 学习-62.Cookies 设置与使用