一个轻量级的cookie 插件,可以读取、写入、删除 cookie


首先包含 jquery 的库文件,在后面包含 jquery.cookie.js 的库文件 :
<script type="text/javascript" src="js/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="js/jquery.cookie.js"></script>

使用方法
1> 新添加一个会话 session cookie
$.cookie('name', 'value');
注 : 当没有指明 cookie有效时间时,所创建的cookie有效期默认到用户关闭浏览器为止

2> 创建一个expiring cookie 并设置有效时间为 7天
$.cookie('name', 'value', { expires: 7 });

3> 创建一个cookie并设置 cookie的有效路径
$.cookie('name', 'value', { expires: 7, path: '/' });
注 : 在默认情况下,只有设置 cookie的网页才能读取该 cookie。如果想让一个页面读取另一个页面设置的 cookie,必须设置cookie的路径。cookie的路径用于设置能够读取 cookie的顶级目录。将这个路径设置为网站的根目录,可以让所有网页都能互相读取 cookie (一般不要这样设置,防止出现冲突)

4> 读取cookie
$.cookie('the_cookie'); // cookie存在 => 'the_value'
$.cookie('not_existing'); // cookie不存在 => undefined
$.cookie(); // 读取所有的 cookie 值 => {"name":"value"}

5> 删除cookie
删除 cookie 成功返回 true,否则返回 false
$.removeCookie('name'); // => true
$.removeCookie('nothing'); // => false

当设置包含属性是(path, domain) ,需要使用相同的方式删除,例如如下代码 :
$.cookie('name', 'value', { path: '/' });
如下删除方式无效
$.removeCookie('name'); // => false
这种方式就有效
$.removeCookie('name', { path: '/' }); // => true
注 : 当删除一个 cookie 时,必须传递准确的相同 path,domain和安全选项,否则仅仅知识删除默认的 cookie 值

相关参数
Configuration
1> raw : 在进行读写操作时,默认为 false,cookie 会使用 encodeURIComponent/decodeURIComponent 进行编码解码
要关闭这个功能设置 raw: true 即可
$.cookie.raw = true;
2> json : 通过 cookie 值自动存储成 JSON 对象,假定是 JSON.stringify 和 JSON.parse  :
$.cookie.json = true;

Cookie Options
通过设置属性 $.cookie.defaults 或 每个调用都单独使用 $.cookie() 传递可选参数来时属性可以全局访问,调用后会覆盖默认选项

expires : 定义cookie的有效时间,值可以是一个数字(从创建cookie时算起,以天为单位)或一个Date 对象。如果省略,那么创建的cookie是会话cookie,将在用户退出浏览器时被删除
function addCookie (objName, objValue, objHours) {
    var str = objName + "=" + escape (objValue);
    if (objHours > 0 ) { // 为时不设定过期时间,浏览器关闭时cookie自动消失
        var date = new Date();
        var ms = objHours * 3600 * 1000 ;
        date . setTime ( date . getTime () + ms );
        str += "; expires=" + date .toGMTString();
    }
    document . cookie = str ;
}

path : 默认情况,只有设置 cookie 的网页才能读取该cookie。定义cookie的有效路径。默认情况下, 该参数的值为创建 cookie 的网页所在路径(标准浏览器的行为) 。如果想在整个网站中访问这个cookie需要这样设置有效路径:path: '/' 创建 cookie的网页所拥有的域名。如果你想删除一个定义了有效路径的 cookie,需要在调用函数时包含这个路径:$.cookie('the_cookie', null,{ path: '/' });。 domain: 'example.com'
注 : 在 IE 浏览器存在隐藏 Bug,当设置的路径属性包含文件名是,IE 的 document.cookie 将不会返回 cookie 值

domain : 定义 cookie 在哪里是有效的,默认在 cookie被创建的网页,如 :
domain: 'example.com'

secure : 默认为 false,如果为 true 此时 cookie的传输需要使用安全协议(HTTPS)

Converters
提供一个转换功能作为最后一个读取参数,用于快速修改cookie 成另外一种类型
比如转换一个值成 number :
$.cookie('foo', '42');
$.cookie('foo', Number); // => 42

处理已经编码的 cookie 值 :
$.cookie.raw = true;
$.cookie('foo', unescape);

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐