zoukankan      html  css  js  c++  java
  • 原生js--cookie操作的封装

    封装cookie的操作:查询cookie个数、查询所有cookie的键、获取cookie、设置cookie、删除cookie、清除全部cookie

    /**
     * cookieStorage
     */
    function cookieStorage( maxage, path ){
        var cookie = ( function(){
            var cookie = {};
            var all = document.cookie;
            if( all ==="" ){
                return cookie;
            }
            var list = all.split( "; " );
            for( var i=0; i<list.length; i++ ){
                var singleCookie = list[i];
                var p = singleCookie.indexOf( "=" );
                var name = singleCookie.substring( 0, p );
                var value = singleCookie.substring( p+1 );
                value = decodeURIComponent( value );
                cookie[name] = value;
            }
            return cookie;
        }() );

        var keys = [];
        for( var key in cookie ){
            keys.push( key );
        }

        this.length = keys.length;
        this.key = function( n ){
            if( n < 0 || n > keys.length-1 ){
                return null;
            }
            return keys[n];
        }
        this.getItem = function(){
            return cookie[name] || null;
        }
        this.setItem = function( key, value ){
            if( !( key in cookie ) ){
                keys.push( key );
                this.length ++;
            }
            cookie[key] = value;
            var cookie = key + "=" + encodeURIComponent( value );
            if( maxage ){
                cookie += "; max-age=" + maxage;
            }
            if( path ){
                cookie += "; path=" + path;
            }
            document.cookie = cookie;
        }
        this.removeItem = function( key ){
            if( !( key in cookie ) ){
                return;
            }
            delete cookie[key];
            for( var i=0; i<keys.length; i++ ){
                if( keys[i]  === key ){
                    keys.splice( i, 1 );
                    break;
                }
            }
            this.length--;
            document.cookie = key + "=; max-age=0";
        }
        this.clear = function(){
            for( var i=0; i<keys.length; i++ ){
                document.cookie = keys[i] + "=; max-age=0";
            }
            cookie = {};
            keys = [];
            this.length = 0;
        }
    }

  • 相关阅读:
    Opennebula4.2管理端和节点SSH模式的安装配置
    shell操作mysql之增删改查
    Linux常用服务部署与优化之NFS篇
    Linux常用服务部署与优化之Samba篇
    sql编程小结
    mysql5.7.11编译安装以及修改root密码小结
    基于centOS6.7搭建LAMP(httpd-2.4.18+mysql-5.5.47+php-5.6.16)环境
    php实现文件上传下载功能小结
    zabbix搭建
    mysql主从复制
  • 原文地址:https://www.cnblogs.com/charling/p/3585795.html
Copyright © 2011-2022 走看看