js中的cookie操作

一、js cookie   使用时把此段代码引入页面

(function (factory) {
    if (typeof define === ‘function‘ && define.amd) {
        define(factory);
    } else if (typeof exports === ‘object‘) {
        module.exports = factory();
    } else {
        var _OldCookies = window.Cookies;
        var api = window.Cookies = factory(window.jQuery);
        api.noConflict = function () {
            window.Cookies = _OldCookies;
            return api;
        };
    }
}(function () {
    function extend () {
        var i = 0;
        var result = {};
        for (; i < arguments.length; i++) {
            var attributes = arguments[ i ];
            for (var key in attributes) {
                result[key] = attributes[key];
            }
        }
        return result;
    }

    function init (converter) {
        function api (key, value, attributes) {
            var result;

            // Write

            if (arguments.length > 1) {
                attributes = extend({
                    path: ‘/‘
                }, api.defaults, attributes);

                if (typeof attributes.expires === ‘number‘) {
                    var expires = new Date();
                    expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);
                    attributes.expires = expires;
                }

                try {
                    result = JSON.stringify(value);
                    if (/^[\{\[]/.test(result)) {
                        value = result;
                    }
                } catch (e) {}

                value = encodeURIComponent(String(value));
                value = value.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);

                key = encodeURIComponent(String(key));
                key = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);
                key = key.replace(/[\(\)]/g, escape);

                return (document.cookie = [
                    key, ‘=‘, value,
                    attributes.expires && ‘; expires=‘ + attributes.expires.toUTCString(), // use expires attribute, max-age is not supported by IE
                    attributes.path    && ‘; path=‘ + attributes.path,
                    attributes.domain  && ‘; domain=‘ + attributes.domain,
                    attributes.secure ? ‘; secure‘ : ‘‘
                ].join(‘‘));
            }

            // Read

            if (!key) {
                result = {};
            }

            // To prevent the for loop in the first place assign an empty array
            // in case there are no cookies at all. Also prevents odd result when
            // calling "get()"
            var cookies = document.cookie ? document.cookie.split(‘; ‘) : [];
            var rdecode = /(%[0-9A-Z]{2})+/g;
            var i = 0;

            for (; i < cookies.length; i++) {
                var parts = cookies[i].split(‘=‘);
                var name = parts[0].replace(rdecode, decodeURIComponent);
                var cookie = parts.slice(1).join(‘=‘);

                if (cookie.charAt(0) === ‘"‘) {
                    cookie = cookie.slice(1, -1);
                }

                try {
                    cookie = converter && converter(cookie, name) || cookie.replace(rdecode, decodeURIComponent);

                    if (this.json) {
                        try {
                            cookie = JSON.parse(cookie);
                        } catch (e) {}
                    }

                    if (key === name) {
                        result = cookie;
                        break;
                    }

                    if (!key) {
                        result[name] = cookie;
                    }
                } catch (e) {}
            }

            return result;
        }

        api.get = api.set = api;
        api.getJSON = function () {
            return api.apply({
                json: true
            }, [].slice.call(arguments));
        };
        api.defaults = {};

        api.remove = function (key, attributes) {
            api(key, ‘‘, extend(attributes, {
                expires: -1
            }));
        };

        api.withConverter = init;

        return api;
    }

    return init();
}));

设置cookie

Cookies(name, value); || Cookies.set(name, value);  //name:所存cookie的名称;value:名称对应的值
Cookies(name1, value1); || Cookies.set(name1, value1);
Cookies(name,value, { expires: 7 }); || Cookies.set(name,value, { expires: 7 });  // 设置cookie失效时间,单位:天
Cookies(name,value, { expires: 7,path:"/路径",domain: "域名"}); || Cookies.set(name,value, { expires: 7,path:"/路径",domain: "域名"});// 设置cookie,包括有效期 路径 域名等

读取cookie

Cookies(); || Cookies.get();  //读取所有cookie,输出的是对象==>{name:value, name1:value1}
Cookies(name); || Cookies.get(name);  //读取对应名称的cookie==>value

删除cookie

Cookies(name:""); //将cookie清空
Cookie.remove(name:""); //删除cookie 对应的cookie名称也删除
时间: 2024-10-29 03:22:21

js中的cookie操作的相关文章

js中的cookie及封装

概念参考高级编程: 1.什么是cookie cookie是用于客户端储存会话的信息: 格式key=value: 2.cookie的构成 名称:一个唯一去顶的cookie的名称,不区分大小写,cookie的名称必须是经过URL编码的: 值:存储cookie中的字符串,值必须被URL编码 域:cookie对于哪个域是有效的,所有向该域发送的请求中都会包含这个cookie信息,这个值可以包含子域,也可以不包含这个cookie信息,如果没有明确设定,那么这个域会被认作来自设置cookie的那个域 路径:

js中利用cookie实现记住密码功能

js中利用cookie实现记住密码功能 在登录界面添加记住密码功能,我首先想到的是在java后台中调用cookie存放账号密码,大致如下: 1 HttpServletRequest request 2 HttpServletResponse response 3 Cookie username = new Cookie("username ","cookievalue"); 4 Cookie password = new Cookie("password

js中的二进制操作相关类型和方法

Blob数据对象 MDN官方解释Blob对象:一个Blob对象就是一个包含有只读原始数据的类文件对象.Blob对象中的数据并不一定得是JavaScript中的原生形式.File接口基于Blob, 继承了Blob的功能,并且扩展支持了用户计算机上的本地文件. 创建Blob对象的方法有几种,可以调用Blob构造函数,还可以使用一个已有Blob对象上的slice()方法切出另一个Blob对象,还可以调用canvas对象上的toBlob方法. 实际上,Blob是计算机通用术语之一,全称写作:BLOB(b

JS中document.cookie详解

什么是cookie? cookie 是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie.你可以使用 JavaScript 来创建和取回 cookie 的值. 设置cookie 每个cookie都是一个名/值对,可以把下面这样一个字符串赋值给document.cookie: document.cookie="userId=828"; document.cookie看上去就像一个属性,可以赋不同的值.但它和一般的属性不一样,改变它的赋值并不

在node.js中使用COOKIE

node.js中如何向客户端发送COOKIE呢?有如下两个方案: 一.使用response.writeHead,代码示例: //设置过期时间为一分钟 1 var today = new Date(); 2 var time = today.getTime() + 60*1000; 3 var time2 = new Date(time); 4 var timeObj = time2.toGMTString(); 5 response.writeHead({ 6 'Set-Cookie':'myC

JS中的DOM操作和事件

[DOM树节点] DOM节点分为三大类: 元素节点. 属性节点. 文本节点: 文本节点.属性节点属于元素节点的子节点.操作时,均需要先取到元素节点,再操作子节点: 可以使用getElement系列方法,取到元素节点. [查看元素节点] 1.getElementById:通过id取到唯一节点.如果ID重名,只能取到第一个. getElementsByName(): 通过name属性   getElementsByTagName(): 通过标签名   getElementsByClassName()

JS 中的二进制操作简介

from 作者:刘骥(@刘骥-JimLiu)网址:http://jimliu.net/2015/09/26/a-brief-look-at-binary-ops-in-js/ 写这篇博客的起源是在div.io上的一篇文章<你所不知道的JavaScript数组>by 小胡子哥下的评论中的讨论. 因为随着XHR2和现代浏览器的普及,在浏览器当中处理二进制不再向过去那样无所适从,随着Canvas/WebGL等新技术逐渐开始进入大众视野,也会用到一些字节数组或者16位.8位整数等东西.在node.js

js中的DOM操作(一)——查看及设置节点

一.前言 DOM 是 W3C(World Wide Web Consortium)标准.同时也 定义了访问诸如 XML 和 HTML 文档的标准: DOM是一个使程序和脚本有能力动态地访问和更新文档的内容.结构以及样式的平台和语言中立的接口. 在HTML和JavaScript的学习中,DOM操作可谓时重中之重.今天,小编就领着大家来看看DOM操作是个什么样子!! 二.DOM节点  DOM节点分为三大类:元素节点.属性节点.文本节点: 而我们心心念念想知道的DOM树就长酱紫!          

JS中获取和操作iframe

一.需求与遇到的问题 在网站的后台管理中使用了iframe框架布局,包括顶部菜单.左侧导航和主页面.需求是:点击主页面上的一个按钮,在顶部菜单栏的右侧显示“退出”链接,点击可退出系统. 我的思路是:在顶部的菜单页面放一个不可见的“退出”链接,当用户点击位于iframe中的主页面(mainPage.htm)中的按钮时,在顶部菜单页面的右侧显示“退出”. 我现在遇到的问题是:如何在页面的一个iframe子页面(mainPage.htm)中获取并且操作其它iframe子页面(比如topPage.htm