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

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

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