cookie作为浏览器本地数据,是可以被JavaScript脚本调用的,下面是JavaScript操作cookie数据的基本方法增删改查。
增
需要三个参数,分别是cookie名称,cookie值,过期时间。
复制
function setCookie(c_name,value,expiredays) { var exdate=new Date() exdate.setDate(exdate.getDate()+expiredays) document.cookie=c_name+ "=" +encodeURI(value)+ ((expiredays==null) ? "" : ";expires="+exdate.toGMTString()) }
删
cookie的删除有几种方式,比如调整过期时间,使cookie失效,重置cookie值等等。下面的方法需要传入cookie的键名。
复制
function delCookie(name) { var exp = new Date(); exp.setTime(exp.getTime() - 1); var cval=getCookie(name); if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString(); }
改
修改cookie的方法和设置cookie增加cookie的方法是一样的,当cookie不存在时浏览器会自动创建,如果存在就会自动更新对应的数据。
查
查询cookie需要传入需要查询的cookie键名,返回cookie的值。如果不存在将会返回空。对这个方法返回值进行判断,将能很好的实现检查cookie是否存在的功能。
复制
function getCookie(c_name) { if (document.cookie.length>0) { c_start=document.cookie.indexOf(c_name + "=") if (c_start!=-1) { c_start=c_start + c_name.length+1 c_end=document.cookie.indexOf(";",c_start) if (c_end==-1) c_end=document.cookie.length return decodeURIComponent(document.cookie.substring(c_start,c_end)) } } return "" }
这里我使用了decodeURIComponent方法对cookie值进行了url解码,使用unescape方式解码如果后台是PHP那么将出现中文乱码,实测WordPress使用该方法出现中文乱码,故改此方法!
评论 (3)