function setCookie(c_name,value,expiredays)
{
var exdate=new Date()
exdate.setDate(exdate.getDate()+expiredays)
document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" : ";expires="+exdate.toGMTString()+";path=/")
}
复制代码
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 unescape(document.cookie.substring(c_start,c_end))
}
}
return ""
}
复制代码
//删除cookies 设置过期
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的一些参数
- expires: 365 定义cookie的有效时间,值可以是一个数字(从创建cookie时算起,以天为单位)或一个Date 对 象。如果省略,那么创建的cookie是会话cookie,将在用户退出浏览器时被删除。
- path: '/' 默认情况:只有设置cookie的网页才能读取该cookie。 定义cookie的有效路径。默认情况下, 该参数的值为创建 cookie 的网页所在路径(标准浏览器的行为) 。 如果你想在整个网站中访问这个cookie需要这样设置有效路径:path: '/'。如果你想删除一个定义 了有效路径的 cookie,你需要在调用函数时包含这个路径:$.cookie('the_cookie', null,?1{ path: '/' });。 domain: 'example.com' 默认值:创建 cookie的网页所拥有的域名。
- secure: true 默认值:false。如果为true,cookie的传输需要使用安全协议(HTTPS)。
- raw: true 默认值:false。 默认情况下,读取和写入 cookie 的时候自动进行编码和解码(使用encodeURIComponent 编码, decodeURIComponent 解码)。要关闭这个功能设置 raw: true 即可。
可能遇到问题:
同一个网站在一个页面设置的cookie,在另一个页面访问不到
这个问题引起的主要原因可能是,你新打开的页面和存cookie的路径不在同一个路径下,cookie的作用范围默认只在当前路径下,例如 www.taobao.com/user/seting 和www.taobao.com/saling/shopingcart 就不在一个路径,你如果在第一个页面设置了cookie,打开第二个页面是看不到的
方法
设置的时候要加上参数 path=/,这样作用范围就是根路径了;复制代码