【问题标题】:Create, read, and erase cookies with jQuery [duplicate]使用 jQuery 创建、读取和擦除 cookie [重复]
【发布时间】:2010-12-08 15:06:12
【问题描述】:

谁来帮帮我。如何使用 jQuery 创建、读取和删除一些 cookie?

【问题讨论】:

标签: jquery cookies


【解决方案1】:

使用JavaScript Cookie plugin

设置 cookie

Cookies.set("example", "foo"); // Sample 1
Cookies.set("example", "foo", { expires: 7 }); // Sample 2
Cookies.set("example", "foo", { path: '/admin', expires: 7 }); // Sample 3

获取 cookie

alert( Cookies.get("example") );

删除 cookie

Cookies.remove("example");
Cookies.remove('example', { path: '/admin' }) // Must specify path if used when setting.

【讨论】:

  • @RameshSoni,我尝试将此插件与 rails 一起使用,但它不适合我。知道这个和 Rails 4 是否有问题吗?谢谢
  • @jackerman09 这是一个客户端插件,可与 jQuery 一起使用。如果您使用导轨,则无关紧要。您能否提供有关您的问题的更多详细信息?
  • @RameshSoni,我特别指的是github.com/RyanScottLewis/jquery-cookie-rails,我意识到你并没有特别提到上面,但是当我将它包含在我的 Gemfile 和 application.js 中时(紧接着 // = 需要 jQuery,正如安装说明所说的那样),每当我加载有关丢失文件的应用程序时,我都会收到错误消息。如果我没记错的话,错误类似于“Sprockets::FileNotFound”(或类似的东西,我现在不在我的开发计算机上)。谢谢!
  • 这里有更新版本github.com/js-cookie/js-cookie,API有点不同
  • 在 laravel 中也不工作
【解决方案2】:

据我所知,没有直接支持,但您可以使用普通的 javascript:

// Cookies
function createCookie(name, value, days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    }
    else var expires = "";               

    document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name, "", -1);
}

【讨论】:

  • 我一直在使用这个脚本,但不起作用
  • @Agus ... 在这里工作得很好,我在生产项目中拥有它,它们就像一个魅力!你遇到了什么错误?
  • 好的 ol javascript 是 jQuery 的基础!这是许多插件中的相同代码。 +1
  • 跨浏览器的正确性是 Web 开发的一个长期问题。 cookie 处理是否足够统一,可以在任何地方直接使用 document.cookie?你能说这是用哪些浏览器测试过的吗?
  • 在 Opera 29、Firefox 38、Chrome 42 上运行正常。IE 11 不工作。
【解决方案3】:

使用 jquery cookie 插件,该链接今天有效: https://github.com/js-cookie/js-cookie

【讨论】:

    【解决方案4】:

    【讨论】:

    • 因为是“聪明人”的答案而被否决。
    • "为链接提供上下文 - 鼓励链接到外部资源,但请在链接周围添加上下文,以便您的其他用户了解它是什么以及为什么存在。始终引用最相关的部分重要链接,以防目标站点无法访问或永久离线。” stackoverflow.com/help/how-to-answer
    猜你喜欢
    • 2016-09-08
    • 1970-01-01
    • 2014-04-20
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    相关资源
    最近更新 更多