请记住刷新状态 - 使用cookie的jQuery

时间:2015-10-21 12:56:34

标签: javascript jquery html performance cookies

我正在尝试开发一个能够记住页面刷新后状态的脚本。

这是我到目前为止所做的。

jQuery的:

      $(window).ready(function() {
var voteId = $('.gallery-item a');
$(voteId).click(function() {
$(this).text('Thank you!');
$(this).css('background-color', 'green');
});
});

我试过这个,但没有运气:

jQuery的:

var cookies = document.cookie.split(";");
    for(var i=0; i < cookies.length; i++) {
    var equals = cookies[i].indexOf("=");
    var name = equals > -1 ? cookies[i].substr(0, equals) : cookies[i];
    document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
    }

2 个答案:

答案 0 :(得分:3)

设置Cookie

以下功能的参数是 Cookie(cname)的名称,Cookie的值(cvalue)以及Cookie之前的天数过期(exdays)

该函数通过将cookiename,cookie值和expires字符串相加来设置cookie。

function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+d.toUTCString();
    document.cookie = cname + "=" + cvalue + "; " + expires;
}

获取Cookie

将cookiename作为参数(cname)

使用文字创建变量(名称)以搜索(cname +&#34; =&#34;)

将分号上的document.cookie拆分为名为ca的数组(ca = document.cookie.split(&#39 ;;&#39;))。

循环通过ca数组(i = 0; i

如果找到cookie (c.indexOf(name)== 0),则返回cookie的值(c.substring(name.length,c) 。长度)

如果找不到cookie,请返回&#34;&#34;。

function getCookie(cname) {
    var name = cname + "=";
    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);
        if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
    }
    return "";
}

设置并获取

setCookie("message", "Thank You", 365); 
setCookie("color", "#0F0", 365); 

var message=getCookie("message"); 
var color=getCookie("color");

这将设置两个Cookie 消息颜色,exp为1年。 您也可以使用JSON数组完成所有操作。

答案 1 :(得分:0)

看看JS Cookie,因为它不需要jQuery。

用于处理Cookie的简单轻量级JavaScript API

适用于所有浏览器

接受任何角色

经过严格测试

没有依赖

不引人注目的JSON支持

支持AMD / CommonJS

符合RFC 6265

启用自定义解码

非常好的维基

~800字节gzipped!

https://github.com/js-cookie/js-cookie

Cookies.set('name', 'true', { expires: 7, path: '' });
Cookies.get('name'); // => 'true'
Cookies.remove('name', { path: '' });