当前位置: 首页 > 工具软件 > cookie.js > 使用案例 >

jquery.cookie.js 下载和使用方法

佴飞驰
2023-12-01
第一种:jquery.cookie.js基于jquery;先引入jquery,再引入:jquery.cookie.js;地址:http://plugins.jquery.com/cookie/
<script type="text/javascript" src="../js/jquery.min.js"></script>
<script type="text/javascript" src="../js/jquery.cookie.js"></script>

开始使用

1.添加一个"会话cookie"

$.cookie('the_cookie', 'the_value');

这里没有指明 cookie有效时间,所创建的cookie有效期默认到用户关闭浏览器为止,所以被称为 “会话cookie(session cookie)”。
2.创建一个cookie并设置有效时间为 7天

$.cookie('the_cookie', 'the_value', { expires: 7 });

这里指明了cookie有效时间,所创建的cookie被称为“持久 cookie (persistent cookie)”。注意单位是:天;
3.创建一个cookie并设置 cookie的有效路径

var the_value={name:"小明",age:22}
$.cookie('the_cookie', JSON.stringify(the_value), { expires: 7, path: '/' });

在默认情况下,只有设置 cookie的网页才能读取该 cookie。如果想让一个页面读取另一个页面设置的cookie,必须设置cookie的路径。cookie的路径用于设置能够读取 cookie的顶级目录。将这个路径设置为网站的根目录,可以让所有网页都能互相读取 cookie (一般不要这样设置,防止出现冲突)。
4.读取cookie

console.log(JSON.parse($.cookie('the_cookie')).name);

5.删除cookie

$.cookie('the_cookie', null);   //通过传递null作为cookie的值即可
//删除有效路径cookie
$.cookie('the_cookie', null, { path: '/' });

6.可选参数

$.cookie('the_cookie','the_value',{
    expires:7,  //(Number|Date)有效期;设置一个整数时,单位是天;也可以设置一个日期对象作为Cookie的过期日期;
    path:'/',//(String)创建该Cookie的页面路径;
    domain:'jquery.com',//(String)创建该Cookie的页面域名;
    secure:true//(Booblean)如果设为true,那么此Cookie的传输会要求一个安全协议,例如:HTTPS;
})

注意:cookie是基于域名来储存的。要放到测试服务器上或者本地localhost服务器上才会生效。cookie具有不同域名下储存不可共享的特性。单纯的本地一个html页面打开是无效的。

第二种方法:无需引入

 /*
     * 功能:设置cookie
     * 参数:
     * _name cookie名称
     * _value    该cookie名称所对应的数据
     * _date 该cookie的过期时间,单位天
     * 返回值:无
     * 示例:
     * setCookie("a", "10", 1);  创建或修改一个cookie,名称叫做a,值为"10",过期时间为1天后
     *   setCookie("a", "10"); 创建或修改一个cookie,过期时间为会话(会话指页面打开到关闭的时间有效)
     *   setCookie("a", "10", -1);   删除名称叫做a的这个cookie
     */
    setCookie("a", "你过来啊", 1);
    function setCookie(_name, _value, _date) {
        var obj = {// 创建一个对象
            "tmp": _value
        }
        // console.log("obj : ", obj);
        // 将对象转为字符串
        var str = JSON.stringify(obj); // str='{"tmp":_value}'
        // console.log("str : ", str);
        str = encodeURIComponent(str); // 中文编码
        // console.log("str : ", str);
        // 存储cookie
        if (_date) { // 如果有输入这个参数,则表示设置一个具体的时间
            var d = new Date();
            d.setDate(d.getDate() + _date);
            document.cookie = _name + "=" + str + "; path=/; expires=" + d.toGMTString();
        } else { // 没有设置_date这个参数时,创建和修改的cookie的过期时间为会话
            document.cookie = _name + "=" + str + "; path=/;";
        }
    }
    /*
     * 功能:获取cookie
     * 参数:
     * _name 指cookie名称
     * 返回值:存储的内容
     * 示例:
     * getCookie("a")
     */
    console.log(getCookie("a"));
    alert(getCookie("a"));
    function getCookie(_name) {
        // 找到所有的cookie
        var str = document.cookie; // str="a=1; b=2; c=3"
        // 字符串转数组
        var arr = str.split("; "); // 注意分号后面有一个空格    arr = ["a=1", "b=2", "c=3"]
        // 循环
        for (var i = 0, l = arr.length; i < l; i++) {
            var col = arr[i].split("="); // arr[i]="a=1" col = ["a", "1"]
            if (col[0] == _name) {
                //return decodeURIComponent(col[1]);    // 下标0指cookie名称,下标1指cookie值
                // _name所对应的cookie
                // console.log("col[1] : ", col[1]);
                var str = decodeURIComponent(col[1]);
                // console.log("str : ", str);
                // console.log("最后str"+str["tmp"]);
                // 字符串转为json对象
                var obj = JSON.parse(str);
                // console.log("obj : ", obj);
                // 在json对象中,获取tmp属性
                return obj.tmp;
            }
        }
        // 如果循环结束后,也没有找到_name,直接返回空
        return ""; // 如果此处不写,则返回undefined
    }
 类似资料: