• 前端cookie


    cookie 封装js

    /**
    * Cookie plugin
    *
    * Copyright (c) 2006 ziqiu.zhang 
    * Dual licensed under the MIT and GPL licenses:
    * http://www.opensource.org/licenses/mit-license.php
    * http://www.gnu.org/licenses/gpl.html
    * 使用举例:
        //注: 写入时,subName参数请传递空值或null
        //写入Cookies-值为字符串,即不包含子键
        $.cookie("singleKey", "", "singleKey-value", { expires: 1, path: "/", secure: false })
        //读取Cookies-根据主键
        alert("singleKey:" + $.cookie("singleKey"));
    
        //写入Cookies-值为对象,则每个属性名为子键的名称,属性值为子键值
        var subNameObj = { subName1: "aaa", subName2: "bbb", subName3: "ccc" };
        $.cookie("multiKey", "", subNameObj, { expires: 1, path: "/", secure: false });
        //读取Cookies-根据主键
        alert("multiKey:" + $.cookie("multiKey"));
        //读取Cookies-根据主键和子键
        alert("multiKey,subName1:" + $.cookie("multiKey", "subName1"));
    *
    */
    
    jQuery.cookie = function (name, subName, value, options) {
        if (typeof value != 'undefined') { // name and value given, set cookie
            options = options || {};
            if (value === null) {
                value = '';
                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(); // use expires attribute, max-age is not supported by IE
            }
            // CAUTION: Needed to parenthesize options.path and options.domain
            // in the following expressions, otherwise they evaluate to undefined
            // in the packed version for some reason...
            var path = options.path ? '; path=' + (options.path) : ';path=/';
            var domain = options.domain ? '; domain=' + (options.domain) : '';
            var secure = options.secure ? '; secure' : '';
    
            //If value is an object, each property will be a sub key;
            if (typeof value == "object") {
                var k = 0;
                var tempResult = "";
                for (var tempValue in value) {
                    if (k > 0) {
                        tempResult += "&";
                    }
                    tempResult += tempValue + "=" + encodeURIComponent(value[tempValue]);
                    k++;
                }
                value = tempResult;
            }
            else {
                value = encodeURIComponent(value);
            }
    
            document.cookie = [name, '=', value, expires, path, domain, secure].join('');
        } else { // only name given, get cookie
            var cookieValue = null;
            if (document.cookie && document.cookie != '') {
                var cookies = document.cookie.split(';');
                for (var i = 0; i < cookies.length; i++) {
                    var cookie = jQuery.trim(cookies[i]);
                    // Does this cookie string begin with the name we want?
                    if (cookie.substring(0, name.length + 1) == (name + '=')) {
                        cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
    
                        //Search sub key
                        if (typeof subName != 'undefined' && subName != null && subName != "") {
                            var subCookies = cookieValue.toString().split('&');
                            for (var j = 0; j < subCookies.length; j++) {
                                var subCookie = jQuery.trim(subCookies[j]);
                                if (subCookie.substring(0, subName.length + 1) == (subName + '=')) {
                                    cookieValue = decodeURIComponent(subCookie.substring(subName.length + 1));
                                    break;
                                }
                            }
                        }
    
                        break;
                    }
    
                }
            }
            return cookieValue;
        }
    };

    写入cookie

      var cityCookieKey = "Citys";
            $(function () {
                if ($.cookie(cityCookieKey, "values") != null && $.cookie(cityCookieKey, "name") != null) {  //读取
                    $("#citys").attr("lang", $.cookie(cityCookieKey, "values"));
                    $("#citys").html($.cookie(cityCookieKey, "name") + "&nbsp;<img src="/Content/User/icon/add_icon.gif" />");
                }
                $(".check_city").addClass("hide");
                $(".check_city").hide();
                $(".check_city a").bind("click", function () {
                    if ($.cookie(cityCookieKey, "values") != null && $.cookie(cityCookieKey, "name") != null) {
                        $.cookie(cityCookieKey, "", "", { expires: 1, path: "/", secure: false }); //写入
                    }
                    $(".check_city").addClass("hide");
                    $(".check_city").hide();
                    $(".check_city").removeClass("show");
                    var citys = $(this).html();
                    var value = $(this).attr("lang");
                    var cookieFilter = {
                        values: value,
                        name: citys
                    };
                    $.cookie(cityCookieKey, "", cookieFilter, { expires: 1, path: "/", secure: false });  //写入
                    $("#citys").attr("lang", $.cookie(cityCookieKey, "values"));
                    $("#citys").html($.cookie(cityCookieKey, "name") + "&nbsp;<img src="/Content/User/icon/add_icon.gif" />");
                });
            });
  • 相关阅读:
    不通过App Store,在iOS设备上直接安装应用程序(转)
    Quest Central for DataBase 5.0.1,6.1 (软件+注册)
    微信公众号自定义菜单与关键词自动回复互斥解决
    转载《Spring AOP中pointcut expression表达式解析 及匹配多个条件》
    ssm 动态切换数据源
    spring aop
    微信公众号自动回复
    转载《spring定时任务轮询(spring Task)》
    N 秒打开一个新窗口
    java webservice maven spring Class Not Found Exception解决
  • 原文地址:https://www.cnblogs.com/llxy/p/4171241.html
Copyright © 2020-2023  润新知