今天面了一把腾讯,被问到cookie的创建和调用,,太久没写过,突然问起竟然记不得了。。在此做下笔记:
谷歌的cookie设置需要在服务器端,,ie和火狐可以本地设置
document.cookie :一下部分内容来自李彦恢老师的课件
<!DOCTYPE html> <html> <head> <title>cookie</title> </head> <body> <script> // alert(document.cookie) //向本地磁盘写入cookie // document.cookie='user=yy' //注意本地是没有域名的,所以域为空 // document.cookie='name=12344'; //对于已经写入的,写入一次就会存在了,直到他的失效时间。 // document.cookie='name2=12344' // alert(document.cookie); //默认情况下,失效时间是在关闭浏览器时。。。cookie是不同浏览器不同域却分 //不同浏览器之间不通用cookie
//创建cookie
function setCookie(name, value, expires, path, domain, secure) {
var cookieText = encodeURIComponent(name) + '=' + encodeURIComponent(value);
if (expires instanceof Date) {
cookieText += '; expires=' + expires;
}
if (path) {
cookieText += '; expires=' + expires;
}
if (domain) {
//获取cookie
function getCookie(name) {
var cookieName = encodeURIComponent(name) + '=';
var cookieStart = document.cookie.indexOf(cookieName);
var cookieValue = null;
if (cookieStart > -1) {
var cookieEnd = document.cookie.indexOf(';', cookieStart);
if (cookieEnd == -1) {
cookieEnd = document.cookie.length;
}
cookieValue = decodeURIComponent(
document.cookie.substring(cookieStart + cookieName.length, cookieEnd));
}
return cookieValue;
}
//删除cookie
function unsetCookie(name) {
document.cookie = name + "= ; expires=" + new Date(0);
}
//失效天数,直接传一个天数即可
function setCookieDate(day) {
if (typeof day == 'number' && day > 0) {
var date = new Date();
date.setDate(date.getDate() + day);
} else {
throw new Error('传递的day 必须是一个天数,必须比0 大');
}
return date;
}
cookieText += '; domain=' + domain;
}
if (secure) {
cookieText += '; secure';
}
document.cookie = cookieText;
}
// var date = new Date(); // date.setDate(date.getDate()+5); // alert(date); //expires=date 失效时间 //path=path 只有这个目录才可以访问则个cookie 访问路径,当设置了路径,那么只有设置的那个路径文件才可以访问cookie。 //domain=domain 访问域名,用于限制只有设置的域名才可以访问,那么没有设置,会 // 默认限制为创建cookie 的域名。 // secure 安全设置,指明必须通过安全的通信通道来传输(HTTPS)才能获取cookie。 var date = new Date(); date.setDate(date.getDate()+1); // alert(date) // document.cookie='name2=xiaomie2' // document.cookie='name1=xiaomie;expires='+date; // document.cookie='name2=xiaomie2' alert(document.cookie) </script> </body> </html>