Cookies让你存储在网页中的用户信息。
什么是Cookies ?
Cookies是数据,存放在小文本文件,你的计算机上。
当Web服务器发送一个网页浏览器,连接被关闭,服务器忘记关于用户的一切。
Cookies被发明来解决“如何记住用户信息”的问题:
- 当用户访问网页时,他的名字可被存储在一个cookie 。
- 用户访问该页面时,已cookie “记住”他的名字。
Cookies是保存在类似名称 - 值对:
username = John Doe
当从服务器的浏览器请求网页时, cookies属于页被添加到请求。 这样,服务器获取所需的数据“记住”用户信息。
创建a Cookie使用JavaScript
JavaScript可以创建,读取和删除cookies与document.cookie属性。
使用JavaScript, a cookie可以这样创建:
document.cookie = "username=John Doe";
您还可以添加失效日期(UTC时间)。 默认情况下, the cookie在浏览器关闭时被删除:
document.cookie = "username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 UTC";
随着路径参数,你可以告诉路径浏览器the cookie所属。 默认情况下, the cookie属于当前页面。
document.cookie = "username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 UTC; path=/";
读取a Cookie使用JavaScript
使用JavaScript, cookies可以这样写:
var x = document.cookie;
document.cookie将返回所有cookies在一个字符串很像: cookie1=value; cookie2=value; cookie3=value; cookie1=value; cookie2=value; cookie3=value;
改变a Cookie使用JavaScript
使用JavaScript,你可以改变a cookie在创建同样的方式:
document.cookie = "username=John Smith; expires=Thu, 18 Dec 2013 12:00:00 UTC; path=/";
旧cookie将被覆盖。
删除a Cookie使用JavaScript
删除a cookie是非常简单的。 只需设置到期参数为传递日期:
document.cookie = "username=; expires=Thu, 01
Jan 1970 00:00:00 UTC";
请注意,您不必指定a cookie ,当你删除值a cookie 。
该Cookie字符串
该document.cookie属性看起来像一个正常的文本字符串。 但事实并非如此。
即使你写了一个整体cookie字符串document.cookie ,当你再读一遍,你只能看到名字-值对吧。
如果你设置一个新cookie ,年纪大cookies不会被覆盖。 新cookie将被添加到document.cookie ,所以如果你读document.cookie再次你会得到这样的:
cookie1 = value; cookie2 = value;
如果你想找到一个特定的值cookie ,你必须编写的JavaScript函数中搜索cookie的值cookie字符串。
JavaScript的Cookie例
另外,在以下的例子中,我们将创建a cookie存储访问者的名字。
第一次一个访问者到达的网页,他将被要求填写自己的名字。 然后该名称存储在a cookie 。
下一次访问者到达同一个页面,他将得到一个值得欢迎的消息。
对于这个例子,我们将创建3个JavaScript函数:
- 一个函数来设置一个cookie值
- 一个函数来获取一个cookie值
- 该功能可以检查一个cookie值
一个函数来设置a Cookie
首先,我们创建一个存储在访问者的名称的函数a cookie变量:
例
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var
expires = "expires="+ d.toUTCString();
document.cookie =
cname + "=" + cvalue + "; " + expires;
}
例子解释:
以上的函数的参数是的名称cookie (cname)的值the cookie (cvalue)和天直到该cookie应到期(exdays)的数目。
函数设置a cookie通过相加所述cookiename , the cookie值和到期串。
一个函数来获取a Cookie
然后,我们创建一个返回指定的值的函数cookie :
例
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i = 0; i <ca.length; i++) {
var c = ca[i];
while (c.charAt(0)=='
') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length,c.length);
}
}
return "";
}
功能介绍:
以the cookiename作为参数(CNAME)。
创建文本变量(名称)搜索(CNAME +“=”)。
拆分document.cookie上分号到一个数组称为ca (ca = document.cookie.split(';'))
循环通过CA array (i=0;i<ca.length;i++)并读出每个值c=ca[i])
如果the cookie发现(c.indexOf(name) == 0)返回值the cookie (c.substring(name.length,c.length)
如果the cookie没有找到,返回“”。
A功能检查a Cookie
最后,我们创建了功能checks ,如果a cookie设置。
如果the cookie设置它会显示一个问候。
如果the cookie没有设置,它会显示一个提示框,询问用户名,并存储用户名cookie为365天,通过调用setCookie函数:
例
function checkCookie() {
var
username=getCookie("username");
if (username!="") {
alert("Welcome again " + username);
} else {
username = prompt("Please enter your name:", "");
if (username != ""
&& username != null) {
setCookie("username", username, 365);
}
}
}
现在一起所有
例
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires="+d.toUTCString();
document.cookie = cname + "=" + cvalue +
"; " + expires;
}
function getCookie(cname) {
var name = cname + "=";
var ca
= document.cookie.split(';');
for(var i = 0; i < ca.length; i++)
{
var c = ca[i];
while (c.charAt(0) == '
') {
c = c.substring(1);
}
if (c.indexOf(name)
== 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
function
checkCookie() {
var user = getCookie("username");
if (user != "")
{
alert("Welcome again " + user);
} else {
user = prompt("Please enter your name:", "");
if (user != "" &&
user != null) {
setCookie("username", user, 365);
}
}
}
试一试» 上面的例子运行checkCookie()函数在页面加载时。