javascipt原生设置cookie封装的模块,可以直接使用,适合大部分浏览器

var CookieUtil = {
    //依据名称取得cookie值  例如 CookieUtil.set("data", "name=nic&book=pageXOffset%20js"); alert(CookieUtil.get("data"));
    get: function (name) {
        var cookieName = encodeURIComponent(name) + "=",
            cookieStart = document.cookie.indexOf(cookieName),//document.cookie的属性
            cookieValue = null;
        if (cookieStart > -1) {
            var cookieEnd = document.cookie.indexOf(";", cookieStart);
            if (cookieEnd == -1) {
                cookieEnd = document.cookie.length;
            }
            cookieValue = decodeURIComponent(document.cookie.substring(cookieStart + cookieName.length, cookieEnd));
        }
        return cookieValue;
    },
    //Set-Cookie:name=value;expires:Mon,22-Jan-07 07:10:24 GMT;domain=.wrox.com;path=/;secure
    //设置cookie
    set: function (name,value,expires,path,domain,secure) {
        var cookieText = encodeURIComponent(name) + "=" + encodeURIComponent(value);
        if (expires instanceof Date) {
            cookieText += ";expires=" + expires.toGMTString();
        }
        if (path) {
            cookieText += ";path=" + path;
        }
        if (domain) {
            cookieText += ";domain=" + domain;
        }
        if (secure) {//使用ssl
            cookieText += ";secure";
        }
        document.cookie = cookieText;
    },
    //取消cookie(使cookie值过期)
    unset: function (name, path, domain, secure) {
        this.set(name, "", new Date(0), path, domain, secure);
    }
}
//子cookie使用cookie值来存储多个名称值对形如name=name1=value1&name2=value2&name3=value3
//例如 var data = SubCookieUtil.getAll("data");
//alert(data.name);
//alert(data.book);
var SubCookieUtil = {
    //取得cookie值及其子cookie
    get: function (name, subName) {
        var subCookies = this.getAll(name);
        if (subCookies)
            return subCookies[subName];
        else
            return null;
    },
    //取到全部子cookie对象
    getAll: function (name) {
        var cookieName = encodeURIComponent(name) + "=",
            cookieStart = document.cookie.indexOf(cookieName),
            cookieValue = null,
            cookieEnd,
            subCookies, i, parts, result = {};
        if (cookieStart > -1) {
            cookieEnd = document.cookie.indexOf(";", cookieStart);
            if (cookieEnd == -1) {
                cookieEnd = document.cookie.length;
            }
            cookieValue = document.cookie.substring(cookieStart + cookieName.length, cookieEnd);
            if (cookieValue.length > 0) {
                subCookies = decodeURIComponent(cookieValue).split("&");
                for (i = 0, len = subCookies.length; i < len; i++) {
                    parts = subCookies[i].split("=");
                    result[decodeURIComponent(parts[0])] = decodeURIComponent(parts[1]);
                }
                return result;
            }
        }
        return null;
    },
    //设置子cookie
    set: function (name,subName,value,expires,path,domain,secure) {
        var subcookies = this.getAll(name) || {};
        subcookies[subName] = value;
        this.setAll(name,subcookies,expires,path,domain,secure);
    },

    setAll: function (name,subcookies,expires,path,domain,secure) {
        var cookieText = encodeURIComponent(name) + "=",
            subcookieParts = new Array(),
            subName;
        for (subName in subcookies) {
            if (subName.length > 0 && subcookies.hasOwnProperty(subName)) {
                subcookieParts.push(encodeURIComponent(subName) + "=" + encodeURIComponent(subcookies[subName]));
            }
        }
        if (cookieParts.length > 0) {
            cookieText += subcookieParts.join("&");

            if (expires instanceof Date) {
                cookieText += ";expires=" + expires.toGMTString();
            }
            if (path) {
                cookieText += ";path=" + path;
            }
            if (domain) {
                cookieText += ";domain=" + domain;
            }
            if (secure) {
                cookieText == ";secure";
            }
        } else {
            cookieText += ";expires=" + (new Date(0)).toGMTString();
        }
        document.cookie = cookieText;
    },
    //注销子cookie
    unset: function (name,subName,path,domain,secure) {
        var subcookies = this.getAll(name);
        if (subcookies) {
            delete subcookies[subName];
            this.setAll(name, subcookies, null, path, domain, secure);
        }
    },
    unsetAll: function (name, path, domain, secure) {
        this.setAll(name, null, new Date(0), path, domain, secure);
    }
}

  

时间: 2024-10-20 23:21:21

javascipt原生设置cookie封装的模块,可以直接使用,适合大部分浏览器的相关文章

设置cookie、获取cookie、删除cookie函数封装

//设置cookie函数function setCookie(key,value,t){   var oDate = new Date();   oDate.setDate( oDate.getDate() + t );   document.cookie = key + '=' + encodeURI(value) + ';expires=' + oDate.toGMTString();} //获取cookie函数function getCookie(key){ //通过分号空格拆分开所有co

js设置cookie(原生js)

cookie 与 session 是网页开发中常用的信息存储方式.Cookie是在客户端开辟的一块可存储用户信息的地方:Session是在服务器内存中开辟的一块存储用户信息的地方. JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的. 而cookie是运行在客户端的,所以可以用JS来设置cookie. 假设有这样一种情况,在某个用例流程中,由A页面跳至B页面,若在A页面中采用JS用变量temp保存了某一变量的值,在B页面的时候,同

js封装Cookie操作 js 获取cookie js 设置cookie js 删除cookie

每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code var CookieUtil = { // 设置cookie set : function (name, value, expires, domain, path, secure) { var cookieText = ""; cookieText += encodeURIComponent(name) + "=" + encodeURIComponen

cookie封装

虽然现在HTML5胜行,localStorage已远远的胜过cookie,但是在天朝,ie6(基本已淘汰),ie7还需要考虑的前提下,cookie还是有用武之地的. 一直都有到cookie,也有了解过cookie的原理,工作中也一直不能忽视工期,基本使用cookie就用jquery.cookie.js解决啦,今天正好有时间就封装下原生的cookie函数. 代码如下(有详细注释): /设置cookie function setCookie(name,value,d){ var dateo=new

更加方便的操作cookie——cookie封装 (by vczero)

一.前言 之前使用cookie,都是document.cookie的形式去操作,兼容性虽好,但是麻烦.个人又是个比较喜欢造轮子的人,所以针对cookie,封装了个工具类.很长时间以来,我都喜欢写代码,而不太喜欢文字总结,也不太喜欢写些零碎的东西,看来得改. 二.思路 (1)如何封装,封装成啥样 如何封装:就是使用原生的js封装成工具,那样到哪里都能能用.针对document.cookie封装是最好的方式,所有的操作都基于document.cookie. 封装成啥样:封装成能够以对象的形式存在,同

Interface接口的设置是由其他模块决定的

描述:我写了个登陆器   无非就是登陆和注册这2个功能,当然还有一个验证码功能 根据职责性,我登陆器不涉及任何用户有关操作. 但我需要规定用户模型必须有以下几个功能,我登陆器才能使用,登陆.注册.根据名字获取用户的个人信息. 所以我设置如下 <?php interface IMember {    /**   * 根据用户名获取用户信息 用户名不指定可以是邮箱.昵称或者手机号码   * @param String $username   */  public function getOneMem

简单封装MySQLdb模块操作MySQL数据库

python连接mysql的connector有很多,我们选择MySQLdb 让python支持MySQLdb模块 #pip2.7 install MySQL-python 查看python2.7可使用的模块是否存在MySQLdb # ipython WARNING: IPython History requires SQLite, your history will not be saved Python 2.7.11 (default, Mar 10 2016, 09:45:30)  Typ

java 设置Cookie值

原文地址:http://blog.csdn.net/lansetiankong12/article/details/52622654 /** * 读取所有cookie * 注意二.从客户端读取Cookie时,包括maxAge在内的其他属性都是不可读的,也不会被提交.浏览器提交Cookie时只会提交name与value属性.maxAge属性只被浏览器用来判断Cookie是否过期 * @param request * @param response */ @RequestMapping("/show

python封装configparser模块获取conf.ini值(优化版)

昨天晚上封装了configparser模块,是根据keyname获取的value.python封装configparser模块获取conf.ini值 我原本是想通过config.ini文件中的section和keyname获取value的,前两天怎么都调试不通过.今天百度了一下,有人通过字典的方式把我的和这个想法实现了,我把这个例子修改了一下,代码如下,并通过测试,以后可以用在自动化测试框架中: 1 #coding:utf-8 2 import os 3 import ConfigParser