首页 > 建站教程 > JS、jQ、TS >  js创建、读取、删除cookie的函数正文

js创建、读取、删除cookie的函数

    js设置cookie非常简单,但是读取cookie的时候,非常的麻烦,因为它一次性获取所有的cookie,而且,将值和名称都获取了,比如,获取“name”对应的cookie值,使用document.cookie,会得到类似:“name=静态网页模板”的格式。如果能像php那样,只需要传递一个cookie的名称,就能得到该名称对应的cookie的值,就好了。
    下面是我爱模板网整理的创建、获取、删除cookie的js函数,而且做好了自动转码功能,传递中文英文都没有任何问题,使用js cookie也变的如此简单:
//创建cookie,这里的expires失效时间,可以通过后面的setCookieDate设置好,然后传给expires
function setCookie(name, value, expires, path, domain, secure) {
    var cookieText = encodeURIComponent(name) + '=' + encodeURIComponent(value);
    if (expires instanceof Date)  {
        cookieText += '; expires=' + expires;
    }
    if (path) {
        cookieText += '; expires=' + expires;
    }
    if (domain) {
        cookieText += '; domain=' + domain;
    }
    if (secure) {
        cookieText += '; secure';
    }
    document.cookie = cookieText;
}
//获取cookie,只需要输入想要获取的cookie名称,即可得到对应的值:
function getCookie(name) {
    var cookieName = encodeURIComponent(name) + '=';
    var cookieStart = document.cookie.indexOf(cookieName);
    var cookieValue = null;
    if (cookieStart > -1) {
        var cookieEnd = document.cookie.indexOf(';', cookieStart);
        if (cookieEnd == -1) {
            cookieEnd = document.cookie.length;
        }
        cookieValue = decodeURIComponent(document.cookie.substring(cookieStart + cookieName.length, cookieEnd));
    }
    return cookieValue;
}
//删除cookie
function unsetCookie(name) {
    document.cookie = name + "= ; expires=" + new Date(0);
}
//失效天数,直接传一个天数即可
function setCookieDate(day) {
    if (typeof day == 'number' && day > 0) {
        var date = new Date();
        date.setDate(date.getDate() + day);
    } else {
        throw new Error('传递的day必须是一个天数,必须比0大');
    }
    return date;
}
本文转载自:合肥网站建设