补充参考网站,大家先看看祥细说明:
https://segmentfault.com/a/1190000004743454
cookie使用注意:
如果你设置cookie无效,那你肯定是设置了domain path : 如:document.cookie = "test2=myCookie2; domain=.google.com.hk; path=/webhp";
我自己封装的document.cookie(不是window.cookie)存取删除使用方法:
//document.cookie = "myname=tangcc;max-age=60";//IE 9 ,chrome ,firefox 都兼容,放心用吧! var log = console.log;//后面直接使用log("hello world!writer:tangcc date:20171226"),不用写console了,解放了,yeah! //这是我进行的简单封装,你也可以自己改 var tangcc = { transformCookieString : function(key,value,maxAge){// 如:document.cookie = "myname=myvalue;max-age=60";key=myname,value=myvalue,maxAge = 60; var cookieString = key+"="+encodeURIComponent(value); //var hours8 = 8 * 3600;//这样写是错的浏览器上的cookie失效时间是按世界标准时间(天文台时间)算的,所以这里不能加8小时(中美时差)。 //判断是否设置过期时间 if(maxAge){//新版用max-age=1;(秒)来设置 or document.cookie = "test3=myCookie3; domain=.google.com.hk; expires=Sat, 04 Nov 2017 16:00:00 GMT; secure" cookieString = cookieString+";max-age=" + parseInt(maxAge); }else{ cookieString = cookieString; } return cookieString; }, getCookie : function(cookieObj,key){ var strCookie = cookieObj; if(/;/g.test(strCookie)){//至少有两对值 var arrCookie=strCookie.split(";"); for(var i=0;i<arrCookie.length;i++){ if(/=/g.test(arrCookie[i])){ var arr=arrCookie[i].split("="); if(arr[0]==key){ return decodeURIComponent(arr[1]); }else{ return ""; } }else{ if(arr == key){ return decodeURIComponent(strCookie); } } } }else{ if(/=/.test(strCookie)){//只有一对值 var arr = strCookie.split("="); if(arr[0] == key){ return decodeURIComponent(arr[1]); }else{//传入的key 不正确 return ""; } }else{//只有一个secure属性 if(arr == key){ return decodeURIComponent(strCookie); } } } } ,deleteCookie :function(name){//这方法是错的,我还没有时间整 var date=new Date(); var hours8 = 8 * 3600;// expires(以s为单位) 时间一到就会自动删除 date.setTime(date.getTime() + hours8 - 100000); document.cookie= name + "='';expires="+date.toUTCString(); } } //案例:老总让我写个广告页面,每天第一次登录时才能弹出,其它时候不能弹出,直到2018年(过年啦!)。我果断使用document.cookie; //计算结束时间 var judgementFullyear = new Date().getFullYear();//这个new Date();得到的是北京时间如:Tue Dec 26 2017 15:19:24 GMT+0800 (中国标准时间),但注意月份要+1 if(judgementFullyear < 2018){//2018年以内都要弹出来 var date = new Date().getHours(); var month = new Date().getMonth()+1;//世界时间是0-11,所以我们要加1 var date = new Date().getDate(); var hours = new Date().getHours(); var minutes=new Date().getMinutes(); var seconds=new Date().getSeconds(); var Time_theEndToday = new Date(judgementFullyear+"/"+(month)+"/"+date+" "+"23:59:59");// var expiresSeconds = parseInt((Time_theEndToday.getTime() - new Date().getTime())/1000);//一天的有效时间,单位是秒,恰恰就是项目中用到的:max-age = expiresSeconds; //如果你只想看看怎么用cookie,那你不要管上面的代码,你只要运行下面的代码看看就完事了 if(typeof document.cookie != "undefined"){ //var aa = document.cookie;//帅哥,这样写是错的,一定是直接给document.cookie赋值,如:document.cookie="myname=myvalue;max-age=60"; //aa = og.transformCookieString("myname","2",3); //错的,你不用试了 //来来来,下面是一个测试例子 document.cookie = tangcc.transformCookieString("myname","2",3);//单位是秒 3秒后过期 setTimeout(function(){ log(tangcc.getCookie(document.cookie,"myname")); if(tangcc.getCookie(document.cookie,"myname")){ //do sth }else{ //
} },2000)//你把2000改为3000,对不起帅哥,得不到myname的值了哦,因为上面设置了3秒失效,哈哈哈 }else{//如果不支持cookie log("对不起,开启cookie失败。"); } }