cookie : 存储数据
1.不同的浏览器存放的cookie位置不一样,也是不能通用的;
2.cookie的存储是以域名形式进行区分的;
3.cookie的数据可以设置名字的;
4.一个域名下存放的cookie的个数是有限制的,不同的浏览器存放的个数不一样;
5.每个cookie存放的内容大小也是有限制的,不同的浏览器存放大小不一样。
通过document.cookie获取当前网站下的cookie的时候,得到的字符串形式的值,他包含了当前网站下所有的cookie。
他会把所有的cookie通过一个“分号+空格”的形式串联起来。
cookie默认是临时存储的,当浏览器关闭进程的时候自动销毁。
如果我们想长时间存放一个cookie。需要在设置这个cookie的时候同时给他设置一个过期的时间。
document.cookie = ‘名称=值;expires=’ + 字符串格式的时间;
内容最好编码存放,encodeURI。
document.cookie = ‘username=’+ encodeURI(‘leo\n你好’) +’;expires=’ + oDate.toGMTString();
利用cookie记录用户名的例子:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<script>
window.onload = function() {
var oUsername = document.getElementById('username');
var oLogin = document.getElementById('login');
var oDel = document.getElementById('del');
if ( getCookie('username') ) {
oUsername.value = getCookie('username');
}
oLogin.onclick = function() {
alert('登陆成功');
setCookie('username', oUsername.value, 5);
}
oDel.onclick = function() {
removeCookie('username');
oUsername.value = '';
}
}
function setCookie(key, value, t) {
var oDate = new Date();
oDate.setDate( oDate.getDate() + t );
document.cookie = key + '=' + value + ';expires=' + oDate.toGMTString();
}
function getCookie(key) {
var arr1 = document.cookie.split('; ');
for (var i=0; i<arr1.length; i++) {
var arr2 = arr1[i].split('=');
if ( arr2[0] == key ) {
return decodeURI(arr2[1]);
}
}
}
function removeCookie(key) {
setCookie(key, '', -1);
}
</script>
</head>
<body>
<input type="text" id="username" />
<input type="button" value="登陆" id="login" />
<input type="button" value="删除" id="del" />
</body>
</html>