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;
        }
    }

  • 相关阅读:
    I
    H
    G
    F
    E
    论js里面的for循环
    js常见问题之为什么点击弹出的i总是最后一个
    array类型的方法
    string类型的方法
    for in在对象和数组中的应用
  • 原文地址:https://www.cnblogs.com/charling/p/3585795.html
Copyright © 2011-2022 走看看