饼干 Java脚本:设置、获取和删除示例
什么是 Cookies?
Cookie 是存储在您的计算机上供浏览器访问的一段数据。您可能有意或无意地享受了 Cookie 带来的好处。您是否曾保存过 Facebook 密码,这样就不必每次尝试登录时都输入密码?如果是,那么您正在使用 Cookie。Cookie 以键/值对的形式保存。
为什么需要 Cookie?
之间的沟通 网页浏览器 浏览器和服务器之间的通信使用名为 HTTP 的无状态协议。无状态协议将每个请求视为独立。因此,服务器在将数据发送到浏览器后不会保留数据。但在许多情况下,需要再次获取数据。这时就需要使用 cookie。有了 cookie,Web 浏览器就不必在每次需要数据时与服务器通信。相反,可以直接从计算机中获取数据。
Javascript 饼干套装
您可以像这样使用 document.cookie 属性创建 cookie。
document.cookie = "cookiename=cookievalue"
您甚至可以为 Cookie 添加到期日期,这样特定的 Cookie 将在指定日期从计算机中删除。到期日期应采用 UTC/GMT 格式。如果您不设置到期日期,则用户关闭浏览器时将删除 Cookie。
document.cookie = "cookiename=cookievalue; expires= Thu, 21 Aug 2014 20:00:00 UTC"
您还可以设置域和路径来指定 Cookie 属于哪个域以及特定域中的哪些目录。默认情况下,Cookie 属于设置 Cookie 的页面。
document.cookie = "cookiename=cookievalue; expires= Thu, 21 Aug 2014 20:00:00 UTC; path=/ "
//创建一个包含当前页面域名和整个域路径的 cookie。
Java脚本获取Cookie
您可以像这样访问 cookie,它将返回为当前域保存的所有 cookie。
var x = document.cookie
Java脚本删除 Cookie
要删除 cookie,您只需将 cookie 的值设置为空,并将 expires 的值设置为过去的日期。
document.cookie = "cookiename= ; expires = Thu, 01 Jan 1970 00:00:00 GMT"
亲自尝试一下这个例子
使代码运行的特殊说明……按两次运行按钮
<html> <head> <title>Cookie!!!</title> <script type="text/javascript"> function createCookie(cookieName,cookieValue,daysToExpire) { var date = new Date(); date.setTime(date.getTime()+(daysToExpire*24*60*60*1000)); document.cookie = cookieName + "=" + cookieValue + "; expires=" + date.toGMTString(); } function accessCookie(cookieName) { var name = cookieName + "="; var allCookieArray = document.cookie.split(';'); for(var i=0; i<allCookieArray.length; i++) { var temp = allCookieArray[i].trim(); if (temp.indexOf(name)==0) return temp.substring(name.length,temp.length); } return ""; } function checkCookie() { var user = accessCookie("testCookie"); if (user!="") alert("Welcome Back " + user + "!!!"); else { user = prompt("Please enter your name"); num = prompt("How many days you want to store your name on your computer?"); if (user!="" && user!=null) { createCookie("testCookie", user, num); } } } </script> </head> <body onload="checkCookie()"></body> </html>