cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 JavaScript 来创建和取回 cookie 的值,本文通过一段代码给大家介绍 js 设置、获取、清除单值和多值 cookie 的方法,需要的朋友一起学习吧
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
废话不多说了,直接给大家贴代码了。
具体代码如下:
- var CookieUtil = (function() {
- var Cookie = function() {
- // 获取单值cookie
- this.get = function(name) {
- var start = document.cookie.indexOf(encodeURIComponent(name));
- var end = document.cookie.indexOf(';', start);
- if (end == -) {
- end = document.cookie.length;
- }
- return decodeURIComponent(document.cookie.substring(start + name.length + , end));
- };
- // 设置单值cookie
- this.set = function(name, value, expires, path, domain, secure) {
- var cookieText = encodeURIComponent(name) + "=" + encodeURIComponent(value);
- // 设置默认过期时间为七天
- if (expires == undefined) {
- var date = new Date();
- date.setTime(date.getTime() + ****);
- expires = date;
- }
- if (expires instanceof Date) {
- cookieText += "; expires=" + expires.toGMTString();
- }
- if (path != undefined) {
- cookieText += "; path=" + path;
- }
- if (domain != undefined) {
- cookieText += "; domain" + domain;
- }
- if (secure != undefined) {
- cookieText += "; secure";
- }
- document.cookie = cookieText;
- };
- // 清除单值cookie
- this.unset = function(name, path, domain, secure) {
- this.set(name, '', new Date(), path, domain, secure);
- };
- // 设置多值cookie
- this.setAll = function(name, subCookies, expires, path, domain, secure) {
- var cookieText = ";" + encodeURIComponent(name) + "=",
- arr = new Array();
- for (var attr in subCookies) {
- arr.push([encodeURIComponent(attr)] + ":" + encodeURIComponent(subCookies[attr]));
- }
- this.set(name, arr.join('&'), expires, path, domain, secure);
- };
- // 获取多值cookie
- this.getAll = function(name) {
- var obj = {};
- var arr = this.get(name).split('&');
- for (var i = ,
- len = arr.length; i < len; i++) {
- var tmpArr = arr[i].split(':');
- obj[decodeURIComponent(tmpArr[])] = decodeURIComponent(tmpArr[]);
- }
- return obj;
- };
- // 获取多值cookie的子cookie
- this.getSub = function(name, subname) {
- var obj = this.getAll(name);
- return obj[subname];
- };
- // 清除指定的多值cookie
- this.unsetAll = function(name, path, domain, secure) {
- this.unset(name, '', new Date(), path, domain, secure);
- };
- // 清除指定多值cookie的子cookie
- this.unsetSub = function(name, subname, path, domain, secure) {
- var obj = this.getAll(name);
- delete obj[subname];
- this.setAll(name, obj, null, path, domain, secure);
- };
- };
- return new Cookie();
- })();
以上代码就是本文给大家介绍 JavaScript 设置、获取、清除单值和多值 cookie 的方法,有哪里不清楚的地方欢迎给我留言。
来源: