pCookie.js

(function(){

    var PotatogCookie = {};

    //设置cookie
PotatogCookie.set = function(key, value, delay)
{
//默认cookie为七天之后过期 3s 4m 5h 7d 秒 分 时 天
if(delay == "undefined")delay = "7d";
delay = delay.toLowerCase(); var expireDate = new Date(); var num = parseInt(delay);
if(delay.indexOf("d") !== -1)
{
expireDate.setDate(expireDate.getDate() + num);
}
else if(delay.indexOf("h") !== -1)
{
expireDate.setHours(expireDate.getHours() + num);
}
else if(delay.indexOf("m") !== -1)
{
expireDate.setMinutes(expireDate.getMinutes() + num);
}
else if(delay.indexOf("s") !== -1)
{
expireDate.setSeconds(expireDate.getSeconds() + num);
}
else
{
expireDate.setDate(expireDate.getDate() + num);
}
if(typeof value == "object")
{
value = JSON.stringify(value);
}
value = escape(value);
document.cookie = key + "=" + value + ";expires=" + expireDate.toGMTString();
return this.get(key);
} //得到cookie 如果不存在 返回 undefined
PotatogCookie.get = function(key)
{
var objCookie = {};
var cookie = document.cookie;
var keyValueList = cookie.split(";");
for(var index in keyValueList)
{
var keyValue = keyValueList[index].split("=");
var k = keyValue[0].trim();
var v = keyValue[1];
         v = unescape(v);
v = this.decodeJson(v);
objCookie[k] = v;
} if(typeof key == "undefined")
{
return objCookie;
} return objCookie[key];
}
//删除cookie
PotatogCookie.del = function(key)
{
//删除所有cookie
if(typeof key == "undefined")
{
var cookieList = this.get();
for(key in cookieList)
{
this.del(key);
}
return true;
}
else
{
if(this.get(key) == "undefined")
{
return false;
}
else
{
return this.set(key,'',"0s");
}
}
}
PotatogCookie.decodeJson = function(value)
{
//数组转成的对象字符串
var regAryStr = /^\[[\s|\S]*\]$/;
//对象转成的对象字符串
var regObjStr = /^\{([\"\s|\S]+\"\:\"[\s|\S]*)+\"\}$/;
if(regAryStr.test(value))
{
return eval("(" + value + ")");
}
if(regObjStr.test(value))
{
return JSON.parse(value);
}
return value;
}
window.pCookie = PotatogCookie;
})(window);

demo.html

使用方式

设置cookie

pCookie.set("name","张三","7d");

读取cookie 如果不存在 返回undefined

var name = pCookie.get("name");不传参表示获得所有

删除cookie

pCookie.del("name");不传参表示删除所有

js cookie 操作 封装的更多相关文章

  1. js cookie的封装和调用

    <script> function setCookie(cname,cvalue,exdays){ var d = new Date(); d.setTime(d.getTime()+(e ...

  2. js cookie操作

    //写Cookie function writeCookie(name, value) { var expire = new Date(); expire.setFullYear(expire.get ...

  3. js cookie 操作

    <html> <head> <meta charset="utf-8"> <title>Javascript cookie</ ...

  4. JS封装cookie操作函数实例(设置、读取、删除)

    本文实例讲述了JS封装cookie操作函数.分享给大家供大家参考,具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ...

  5. js cookie创建读取删除函数封装

    js cookie创建读取删除函数封装 一.总结 都是为了方便操作,这样弄了很方便 1.创建cookie的函数封装的作用:方便设置过期时间expire,方便设置键和值 2.查询cookie的数据封装的 ...

  6. js简单操作Cookie

    贴一段js简单操作Cookie的代码: //获取指定名称的cookie的值 function getCookie(objName) { var arrStr = document.cookie.spl ...

  7. js中cookie操作

    js中操作Cookie的几种常用方法 * cookie中存在域的概念,使用path和domain区分: * 在同一域中的set和del可以操作同一名称的cookie,但不在同一域中的情况下,则set无 ...

  8. js 判断js函数、变量是否存在 JS保存和删除cookie操作,判断cookie是否存在的方法

    //是否存在指定函数 function isExitsFunction(funcName) {    try {        if (typeof(eval(funcName)) == " ...

  9. DES加密解密 与 Cookie的封装(C#与js互相加密解密)

    2D JS框架 - DES加密解密 与 Cookie的封装(C#与js互相加密解密)   这次实现了JS端的DES加密与解密,并且C#端也能正确解析DES的密文(反之也实现了) 使用的代码如下,非常方 ...

随机推荐

  1. CAT部署安装文档

    多数软件都在/root/project/codebase/3rdpart redhat7用firewalld取代了iptables,遇到问题请添加redhat7关键字搜索,详情请参见Common ad ...

  2. Android串口屏(电阻,电容触摸),带AV输入,7寸LCD1(800*48...

    基本参数:CPU:MT6572 双核1GHzRAM:512MB存储:4GB网络:GSM,WCDMA(BAND1)WIFI:2.4G 802.11bgn蓝牙:2.0支持GPS定位 扩展参数:1.电源输入 ...

  3. Linux 虚拟文件系统概述

    转自:http://blog.csdn.net/u011373710/article/details/70198080 文章梗概 本文首先以“尽量不涉及源代码”的方式讨论Linux虚拟文件系统的存在的 ...

  4. JAVA第2课

         JAVA   第二课 Eclipse 在加载JAVA环境出错的时候处理办法: 项目-属性-Java build path-add library -JRE system library-OK ...

  5. cookie和sesssion

    一.cookie cookie和session都可以暂时保存在多个页面中使用的变量,但是它们有本质的差别. cookie存放在客户端浏览器中,session保存在服务器上.它们之间的联系是sessio ...

  6. L1-063 吃鱼还是吃肉

      国家给出了 8 岁男宝宝的标准身高为 130 厘米.标准体重为 27 公斤:8 岁女宝宝的标准身高为 129 厘米.标准体重为 25 公斤. 现在你要根据小宝宝的身高体重,给出补充营养的建议. 输 ...

  7. 对弈win32笔记

    对弈的win32笔记   一:Windows程序运行原理 一.Windows四大模块程序 1.1控制台程序 没有自己的窗口,dos-显示或者运行程序,入口mian() 1.2窗口程序 有自己的窗口,w ...

  8. [面经]杭州某初创公司FPGA工程师实习

    面试时间:2017年8月17日 面试时长:约1小时 面试形式:面对面 面试公司:杭州某初创公司,致力于开发VR相关产品 面试职位:FPGA工程师(实习) 面试官:公司现任FPGA开发工程师,双控硕士毕 ...

  9. unity3d 数据加/解密

    [/font]using System.Collections; using System.Text; using System.Security.Cryptography; using System ...

  10. .net 服务因为GC时遇到的问题和解决办法

    1.问题: .net单一服务中,大量的请求访问后台服务,多线程处理请求,但每个线程都可能出现超时的现象.记录超时日志显示,超时可能在序列化时,Socket异步发送AsyncSend数据时,普通业务处理 ...