开启辅助访问
帐号登录 |立即注册

JavaScript Cookie使用详解

 
JavaScript Cookie 实例
在以下实例中,我们将创建 cookie 来存储访问者名称。
首先,访问者访问 web 页面, 他将被要求填写自己的名字。该名字会存储在 cookie 中。
访问者下一次访问页面时,他会看到一个欢迎的消息。

创建、修改cookie的语法:
document.cookie="username=John Smith; expires=Thu, 18 Dec 2043 12:00:00 GMT; path=/";

在这个实例中我们会创建 3 个 JavaScript 函数:
  • 设置 cookie 值的函数
  • 获取 cookie 值的函数
  • 检测 cookie 值的函数

设置 cookie 值的函数
首先,我们创建一个函数用于存储访问者的名字:
[JavaScript] 纯文本查看 复制代码
function setCookie(cname,cvalue,exdays)
{
  var d = new Date();
  d.setTime(d.getTime()+(exdays*24*60*60*1000));
  var expires = "expires="+d.toGMTString();
  document.cookie = cname + "=" + cvalue + "; " + expires;
}

函数解析:
以上的函数参数中,cookie 的名称为 cname,cookie 的值为 cvalue,并设置了 cookie 的过期时间 expires。
该函数设置了 cookie 名、cookie 值、cookie过期时间。


获取 cookie 值的函数
然后,我们创建一个函数用户返回指定 cookie 的值:
[JavaScript] 纯文本查看 复制代码
function getCookie(cname){
  var name = cname + "=";
  var ca = document.cookie.split(';');
  for(var i=0; i<ca.length; i++) {
    var c = ca[i].trim();[/i]
    if (c.indexOf(name)==0) return c.substring(name.length,c.length);
  }
  return "";
}
函数解析:
cookie 名的参数为 cname。
创建一个文本变量用于检索指定 cookie :cname + "="。
使用分号来分割 document.cookie 字符串,并将分割后的字符串数组赋值给 ca (ca = document.cookie.split(';'))。
循环 ca 数组 (i=0;i<ca.length;i++),然后读取数组中的每个值,并去除前后空格 (c=ca.trim())。
如果找到 cookie(c.indexOf(name) == 0),返回 cookie 的值 (c.substring(name.length,c.length)。
如果没有找到 cookie, 返回 ""。


检测 cookie 值的函数
最后,我们可以创建一个检测 cookie 是否创建的函数。
如果设置了 cookie,将显示一个问候信息。
如果没有设置 cookie,将会显示一个弹窗用于询问访问者的名字,并调用 setCookie 函数将访问者的名字存储 365 天:
[JavaScript] 纯文本查看 复制代码
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);
    }
  }
}





回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

友情链接
  • 艾Q网

    提供设计文章,教程和分享聚合信息与导航工具,最新音乐,动漫,游戏资讯的网站。