Cookie--操作

139 阅读2分钟

1、原生操作cookie

  • 获取cookie (cookie值存 true 1 / false 0)

	// 原生获取cookie
	var isTranslate = document.cookie.split(';').some(function(item, index) {
		var itemArr = item.split('=')
		return itemArr[0] === 'translate' && itemArr[1] == 1
	})
  • 设置cookie

// 设置cookie days设置过期时间 单位:天 不传默认是 cookie 在浏览器关闭时删除
function setCookie(name,value,days) { 
    var exp = new Date(); 
    exp.setTime(exp.getTime() + days*24*60*60*1000); 
    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString(); 
} 
  • 获取cookie

  function getCookie(name) { // 获取一个cookie  
            var strCookie = document.cookie;  
            var arr = strCookie.split(';');  
            for (var i = 0; i < arr.length; i++) {  
               var t = arr[i].split("=");  
                if(t[0] == name) {  
                    return t[1];  
                }  
            };  
            return null;  
        } 
  • 删除cookie

//如果需要删除cookie的话,直接将过期时间设置成一个已经过去的日期即可
function clearCookie(name) {
 setCookie(name, "", -1);
}

2、JQ操作cookie

  • 设置cookie

$.cookie(键, 值, { expires: 7 });
$.cookie(键, 值, { expires: 7, path: '/' }); 
  • 获取cookie

  $.cookie(键)
  • 删除cookie

 $.cookie(键,null)
 

3、相关参数解释

1).expires: 365

定义cookie的有效时间
值可以是一个数字(从创建cookie时算起,以天为单位)或一个Date 对象。如果省略,那么创建的cookie是会话cookie,将在用户退出浏览器时被删除。

2).path: '/'

默认情况:只有设置cookie的网页才能读取该cookie。

定义cookie的有效路径。默认情况下, 该参数的值为创建 cookie 的网页所在路径(标准浏览器的行为)。

如果你想在整个网站中访问这个cookie需要这样设置有效路径:path: '/'。 如果你想删除一个定义了有效路径的 cookie,你需要在调用函数时包含这个路径:$.cookie('the_cookie', null, { path: '/' });。 domain: 'example.com'

默认值:创建 cookie的网页所拥有的域名。

3).secure: true

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

4).raw: true

默认值:false。

默认情况下,读取和写入 cookie 的时候自动进行编码和解码(使用encodeURIComponent 编码,decodeURIComponent 解码)。要关闭这个功能设置 raw: true 即可。

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

本文内容未经过校验,如有错误欢迎指出
材料参考:blog.csdn.net/alokka/arti…
www.jb51.net/article/441…