小生做web相关的比赛时记录,错误的地方恳请纠正,谢谢!
Javascript是运行在客户端的脚本,不能够对Session进行操作,因为Session是运行在服务器端;
而cookie是运行在客户端,所以JS是可以操作cookie
cookie存储的内容:username,password
function savePassword(username,password,days) {
var exp = new Date();
//cookie有效期
exp.setTime(exp.getTime()+ days*24*60*60*1000);
//escape()字符串转义函数
//expires保存时间
document.cookie = username + "=" + escape(password) +";expires=" + exp.toGMTString();
}
由username取password
方案一:
function getPasswordInCookie(username) {
//创建正则表达式
var reg = nnew RegExp("(^| )"+username+"=([^;]*)(;|$)");
var attribute;
//根据正则表达式在cookie中匹配
if ( attribute= document.cookie.match(reg) ) {
//unescape()函数对 被escape()函数编码的字符串 进行解码
return unescape(attribute[1]);
} else {
return null;
}
}
方案二:
function getCookie(username) {
var name = username + "=";
var cookie = document.cookie.split(';');
for(var i=0; i<cookie.length; i++) {
var c = cookie[i].trim();
if (c.indexOf(name)==0)
return c.substring(name.length,c.length);
}
return "";
}
function delCookie(username) {
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var password=getCookie(username);
if(password!=null)
document.cookie = name + "="+cval+";expires="+exp.toGMTString();
}
需要使用:jquery的cookie插件
这里使用cdn:http://www.bootcdn.cn/jquery-cookie/
<script src="https://cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
没有指明cookie有效期间,默认到用户关闭浏览器为止
$.cookie('key','value')
指明cookie有效时间
$.cookie('key','value',{expires : 7});
默认情况下,只有设置cookie的网页才能读取该cookie
如果想让一个页面读取另一个页面设置cookie,必须设置cookie的路径
cookie的路径用于设置能够读取cookie的顶级目录
将这个路径设置为网站的根目录,可以让所有网站都能互相读取cookie
$.cookie('key','value',{ expires:7,path:'/' });
存在返回value,不存在返回null
$.cookie('key');
$.cookie('key',null);
用户登录时选择保存账号密码、自动登录