饼干 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>