//先设置一段子cookie
var d = new Date();
d.setMonth(d.getMonth() + 1);
d = d.toGMTString();
var a = "name:a, age:20, addr:beijing";
var c = "user=" + escape(a);
c += ";" + "expires=" + d;
document.cookie = c;

//读取所有cookie信息,包括子cookie信息的值
//返回值:对象(键:每个cookie变量【包括子cookie中的键】,值:每个cookie变量的值【包括子cookie中的值】)
function getSubCookie(){
    var a = document.cookie.split(";");
    var o = {};
    for (var i = 0; i < a.length; i++){ //遍历cookie信息数组
        a[i] && (a[i] = a[i].replace(/(^\s*)|(\s*$)/g,''));
        //清除头部空格符
        var b = a[i].split("=");
        var c = b[1];
        c && (c = c.replace(/(^\s*)|(\s*$)/g,''));
        c = unescape(c);
        //如果c中不包含逗号(不是子cookie),直接把c作为cookie变量的值存入对象
        if(!/\,/gi.test(c)){
            o[b[0]] = b[1];
        }else{
            var d = c.split(",");
            for(var j=0; j<d.length; j++){
                var e = d[j].split(":");
                e[0] && (e[0] = e[0].replace(/(^\s*)|(\s*$)/g,''));
                o[e[0]] = e[1];
            }
        }
    }
    return o;
}

代码片段2:封装cookie存取功能

//封装cookie存取功能,可以写入cookie,读取cookie,也可以删除cookie
function Cookie(name, value, options){
    if(typeof value != 'undefined'){
        options = options || {};
        if(value === null){
            options.expires = -1;
        }
        var expires = '';
        if(options.expires && (typeof options.expires == 'number' || options.expires.toUTCString())){
            var date;
            if(typeof options.expires == 'number'){
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            }else{
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString();
        }
        var path = options.path?'; path='+options.path:'';
        var domain =  options.domain?'; domain='+options.domain:'';
        var secure = options.secure?'; secure':'';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    }else{
        var CookieValue = null;
        if(document.Cookie && document.Cookie != ''){
            var Cookies = document.Cookie.split(";");
            for( var i = 0; i < Cookies.length; i++){
                var Cookie = (Cookies[i] || "").replace(/^\s+|\s+$/g, "");
                //这个if写的屌
                if(Cookie.substring(0, name.length + 1) == (name + '=')){
                    CookieValue = decodeURIComponent(Cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return CookieValue;
    }
}

//设置cookie
Cookie('user', 'hebe', {expires:10, path:"/", domain:"baidu.com", secure: true});
//读取cookie
Cookie('user');
//删除cookie
Cookie('user', null);

js函数收藏:获取cookie值的更多相关文章

  1. (转)js函数参数设置默认值

    原文:http://www.cnblogs.com/RightDear/archive/2013/06/26/3156652.html js函数参数设置默认值   php有个很方便的用法是在定义函数时 ...

  2. js创建和获取cookie

    创建cookie document.cookie='like=1'; //创建 cookie键名和值 var str = document.cookie; 获取cookie 读取cookiefunct ...

  3. js函数参数设置默认值

    php有个很方便的用法是在定义函数时可以直接给参数设默认值,如: function simue ($a=1,$b=2){  return $a+$b;}echo simue(); //输出3echo ...

  4. Js设置及获取Cookie的方法

    Login页面设置Cookie: <script type="text/javascript"> if(json.result=="true") { ...

  5. js设置与获取Cookie

    /*设置与获取Cookie*/ var Cookie ={} Cookie.write = function(key, value, duration){ var d = new Date(); d. ...

  6. JS获取Cookie值

    function GetLoginCookie() { var userCookie = getCookie("mycookie"); var loginname = userCo ...

  7. Js获取Cookie值的方法

    function getCookie(name) { var prefix = name + "=" var start = document.cookie.indexOf(pre ...

  8. js javascript 如何获取某个值在数组中的下标

    js 某个值在数组中的下标javascript中知道一个数组中的一个元素的值,如何获取数组下标JS 获取数组某个元素下标 函数方法 采用prototype原型实现方式,查找元素在数组中的索引值js查找 ...

  9. SpringMVC(十一) RequestMapping获取Cookie值

    可以在控制器方法中使用类似@CookieValue("JSESSIONID") String sessionID的方式,来获取请求中的Cookie的值. 样例控制器代码 packa ...

随机推荐

  1. Could not link against boost_system 解决办法

    Could not link against boost_system 解决办法: 先安装 libboost-all-dev ./configure --with-incompatible-bdb - ...

  2. PostgreSQL rule view materialized view examples

    warehouse_db=# create table tab_view(emp_id int not null,emp_name varchar(10),emp_city varchar(10)); ...

  3. dubbo管理控制台安装和使用

    dubbo管理控制台安装和使用 标签: dubbo 2014-08-19 16:31 2436人阅读 评论(1) 收藏 举报  分类: dubbo(6)  版权声明:本文为博主原创文章,未经博主允许不 ...

  4. class的使用

    class test(object): """ get被称之为test对象的方法 """ def __init__(self,var1): ...

  5. 【MySql】性能优化之分析命令

    一 当发现程序运行比较慢的时候,首先排除物力资源问题之后,就将注意力转向mysq数据库: 1.首先确定运行慢的sql语句: mysql> show full processlist; 2.确认低 ...

  6. hdoj 2032 杨辉三角

    杨辉三角 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  7. HTTP请求和响应详解

    HTTP有两部分组成:请求与响应,下面分别整理. 一.HTTP请求 1.HTTP请求格式: <request line> <headers> <blank line> ...

  8. JS 操作Dom节点之样式

    为了提高用户体验,我们经常会动态修改Dom节点的样式,各种浏览器差异比较大,我们如何应对?不断尝试,不断总结~! 1. style.getComputedStyle.currentStyle 内嵌样式 ...

  9. mysql常用基础操作语法(六)--对数据排序和限制结果数量的条件查询【命令行模式】

    1.使用order by对查询的结果进行排序,asc升序,desc降序: 也可以在order by后指定多个字段名和排序方式进行多级排序: 2.使用limit限制查询结果的数量: 上图中的0,代表查询 ...

  10. Burpsuite 1.7.33启动的一点小问题。

    最近用的burp到期了,就想找个新版本的. https://www.52pojie.cn/thread-691448-1-1.html 上面帖子里贴了最新的几个版本的burp,下载以后,问题出现了,无 ...