栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

javascript针对cookie的基本操作实例详解

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

javascript针对cookie的基本操作实例详解

本文实例讲述了javascript针对cookie的基本操作。分享给大家供大家参考,具体如下:

js被C#、JAVA等开发者视为声名狼藉的附属编程语言是有道理的,比如说,对cookie的操作。js就没有一套类似C#的现成处理方案,而只能由你自己去完成。下面我就将自己学习的用面向对象的思想对cookie进行处理的学习笔记整理一下,以飨读者。

cookie的常见操作分析:

(1)设置cookie 包括了添加和修改功能,事实上如果原有cookie 名称已经存在,那么添加此cookie 就相当于修改了此cookie。在设置cookie 的时候可能还会有一些可选项,用于指cookie  的声明周期、访问路径以及访问域和安全性等等。为了让cookie 中能够存储中文,该方法中还需要对存储的值进行编码。

(2)取一个cookie的值,该方法接收cookie 名称为参数,返回该cookie 的值。因为在存储该值的时候已经进行了编码,所以取值时应该能自动解码,然后返回(这里其实可以自己设置返回什么,而不单单是"取一个值"而已)。

(3)删除一个cookie,删除cookie 只需将一个cookie 的过期事件设置为过去的一个时间即可,它接收一个cookie 的名称为参数,从而删除此cookie(我的实现还将cookie名称设置为空,这是考虑到今后可能会有多个cookie要设置的时候,名称发生冲突的情况)。

(4)其他 (这里让读者自己去考虑其他的操作,不赘述了。)

好的,你一定又猜到我要说什么了,对头,code is cheap.看代码:


//创建
var cookie = new Object();
//设置(修改)属性和方法
cookie.setcookie = function(sName, sValue, oExpires, sPath, sDomain, bSecure) {
  var scookie = sName + "=" + escape(sValue); // 名称和值
  if (oExpires) {
    scookie += "; expires=" + oExpires.toGMTString(); // 过期时间
  }
  if (sPath) {
    scookie += "; path=" + sPath; // 访问路径
  }
  if (sDomain) {
    scookie += "; domain=" + sDomain; // 访问路径
  }
  if (bSecure) {
    scookie += "; true"; // 安全性
  }
  document.cookie = scookie;
}
//获取
cookie.getcookie = function(sName) {
  var cookieArray = document.cookie.split(";"); //得到分割的名值对
  var tempcookie = new Object();
  for (var i = 0; i < cookieArray.length; i++) {
    var tempArr = cookieArray[i].split("="); //将名称和值分开
    if (tempArr[0] == sName) { //如果是指定的cookie,返回它的值
      return unescape(tempArr[1]);
    }
  }
  return "There's no such a cookie name!";
}
//删除
cookie.deletecookie = function(sName, sPath, sDomain) {
  var scookie = sName + "=; expires=" + (new Date(0)).toGMTString(); // 设置名称为空,过期时间为0,也可以设置过期时间为负数 (var scookie = sName + "=; expires=-1"; )
  if (sPath) {
    scookie += "; path=" + sPath;
  }
  if (sDomain) {
    scookie += "; domain=" + sDomain;
  }
  document.cookie = scookie;
}
function test() {
  cookie.setcookie("test", "cookieTest");
  alert(cookie.getcookie("test"));
  alert(cookie.getcookie("test2")); // ???
  cookie.deletecookie("test");
  alert(cookie.getcookie("test"));
}

补充:javascript 操作cookie类

String.prototype.Trim = function()
{
  return this.replace(/^s+/g,"").replace(/s+$/g,"");
}
function JScookie()
{
  this.Getcookie = function(key)
  {
    var cookie = document.cookie;
    var cookieArray = cookie.split(';');
    var getvalue = "";
    for(var i = 0;i

用法:

一、设置cookie

var cookie = new JScookie();
//普通设置
cookie .Setcookie("key1","val1");
//过期时间为一年
var expire_time = new Date();
expire_time.setFullYear(expire_time.getFullYear() + 1);
cookie .Setcookie("key2","val2",expire_time);
//设置域及路径,带过期时间
cookie .Setcookie("key3","val3",expire_time,".cnblogs.com","/");
//设置带子键的cookie,子键分别是k1,k2,k3
cookie .Setcookie("key4","k1=1&k2=2&k3=3");

二、读取cookie

//简单获取
cookie .Getcookie("key1");
cookie .Getcookie("key2");
cookie .Getcookie("key3");
cookie .Getcookie("key4");
//获取key4的子键k1值
cookie .GetChild("key4","k1");

三、删除

cookie .Expire("key1");
cookie .Expire("key2");
cookie .Expire("key3");
cookie .Expire("key4");

希望本文所述对大家Javascript程序设计有所帮助。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/99665.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号