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

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

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

【问题讨论】:

    标签: javascript jquery cookies


    【解决方案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 脚本。我花了几个小时的工作,我希望我能帮助别人。

          【讨论】:

            猜你喜欢
            • 2019-04-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-01-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-02-01
            相关资源
            最近更新 更多