document.cookie = "名称1=值1[; 名称2=值2; …]";设置 cookie 的示例如下:
document.cookie = "username=abc"; document.cookie = "age=23"; document.cookie = "username=abc; age=23";需要注意的是,在 cookie 的名称或值中不能使用分号
;
和等号=
等符号。如果想存入这些符号,需要使用 escape() 函数进行编码。例如:
document.cookie="str="+escape("username=nch")该代码等效于:
document.cookie="str=username%3Dnch"即等号被编码为“%3D”。当使用 escape() 编码后,在取出值以后需要使用 unescape() 进行解码才能得到原来的 cookie 值。
document.cookie="age=36";这样就可以修改前面设置的 age=23 的 cookie 值。
document.cookie = "username=abc; age=23"; var arr1 = document.cookie.split(';'); for(var i = 0; i < arr1.length; i++){ var arr2 = arr1[i].split('='); if(arr2[0] == 'age'){ alert(arr2[1]); } }
document.cookie = "名称=值;expires="+字符串格式的时间;例如:
var oDate = new Date(); oDate.setDate(oDate.getDate()+10);//访问页面后的10天过期 //设置cookie的有效时间, 时间为字符串格式 document.cookie = 'username=abc;expires='+oDate.toGMTString();
var oDate = new Date(); oDate.setDate(oDate.getDate()-1);//访问页面的前一天 document.cookie = 'username=abc;expires='+oDate.toGMTString();
<!doctype html> <html> <head> <meta charset="utf-8"> <title>使用cookie记住登录用户名</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'); } //定义一个函数来获取指定名称的cookie值: 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 unescape(arr2[1]);//对编码后的内容进行解码 } } } //定义一个函数来设置cookie,同时设置cookie的有效时间 function setCookie(key,value,t){ var oDate = new Date(); oDate.setDate(oDate.getDate()+t); //使用escape()对内容进行编码 document.cookie = key+'='+escape(value)+';expires='+oDate.toGMTString(); } //定义一个函数移除cookie function removeCookie(key){ setCookie(key,'',-1); } oLogin.onclick = function(){ alert('登录成功'); //将输入的用户名存储在cookie中, 且在登录5天后cookie过期 setCookie('username',oUsername.value,5); } oDel.onclick = function(){ removeCookie('username'); oUsername.value = '';//移除cookie后清空文本框内容 } }; </script> </head> <body> <input type="text" id="username"/> <input type="button" value="登录" id="login"/> <input type="button" value="删除用户名cookie" id="del"/> </body> </html>
注意:Firefox 和 IE 在本地只允许临时操作 cookie,关闭浏览器后无法获取 cookie。而 Chrome 则不允许在本地操作 cookie。将本例发布到 Web 服务器上后再访问它时,这些浏览器都可以操作 cookie。
图3和图4所示是在 Chrome 浏览器中访问发布到 Tomcat Web 服务器上运行后分别为输入用户名后单击登录按钮和删除按钮的结果。Tomcat 服务器在本机,因而可以使用 localhost 作为域名来访问它。
输入用户名后单击登录按钮,在单击删除用户名 cookie 按钮前关掉 Chrome 浏览器进程,然后再次打开 Chrome 访问本例,可得到图3所示的结果,即用户名会自动显示在文本框中。
图3:输入用户名后单击登录
图4:单击删除用户名 cookie 按钮后的效果
本文链接:http://task.lmcjl.com/news/14301.html