1. 博客搬家了,欢迎大家关注,https://bobjin.com

js设置、获取单值cookie和多值cookie,代码如下:

  1. var CookieUtil = (function () {
  2. var Cookie = function () {
  3. // 获取单值cookie
  4. this.get = function(name) {
  5. var start = document.cookie.indexOf(encodeURIComponent(name)) ;
  6. var end = document.cookie.indexOf(';', start) ;
  7. if(end == -1) {
  8. end = document.cookie.length;
  9. }
  10. return decodeURIComponent(document.cookie.substring(start+name.length+1,end));
  11. };
  12.  
  13. // 设置单值cookie
  14. this.set = function(name, value, expires, path, domain, secure) {
  15. var cookieText = encodeURIComponent(name) + "=" + encodeURIComponent(value);
  16. // 设置默认过期时间为七天
  17. if(expires == undefined) {
  18. var date = new Date();
  19. date.setTime(date.getTime() + 7*24*60*60*1000);
  20. expires = date ;
  21. }
  22. if(expires instanceof Date) {
  23. cookieText += "; expires=" + expires.toGMTString();
  24. }
  25. if(path != undefined) {
  26. cookieText += "; path=" + path;
  27. }
  28. if(domain != undefined) {
  29. cookieText += "; domain" + domain;
  30. }
  31. if(secure != undefined) {
  32. cookieText += "; secure";
  33. }
  34. document.cookie = cookieText;
  35. };
  36.  
  37. // 清除单值cookie
  38. this.unset = function(name, path, domain, secure) {
  39. this.set(name, '', new Date(0), path, domain, secure );
  40. };
  41.  
  42. // 设置多值cookie
  43. this.setAll = function(name, subCookies, expires, path, domain, secure) {
  44. var cookieText = ";" + encodeURIComponent(name) + "=",
  45. arr = new Array();
  46. for(var attr in subCookies) {
  47. arr.push([encodeURIComponent(attr)] + ":" + encodeURIComponent(subCookies[attr]));
  48. }
  49. this.set(name, arr.join('&'), expires, path, domain, secure);
  50. };
  51.  
  52. // 获取多值cookie
  53. this.getAll = function(name) {
  54. var obj = {};
  55. var arr = this.get(name).split('&');
  56. for(var i = 0, len = arr.length; i < len; i++) {
  57. var tmpArr = arr[i].split(':');
  58. obj[decodeURIComponent(tmpArr[0])] = decodeURIComponent(tmpArr[1]);
  59. }
  60. return obj;
  61. };
  62.  
  63. // 获取多值cookie的子cookie
  64. this.getSub = function(name, subname) {
  65. var obj = this.getAll(name);
  66. return obj[subname];
  67. };
  68.  
  69. // 清除指定的多值cookie
  70. this.unsetAll = function(name,path,domain,secure) {
  71. this.unset(name, '', new Date(0), path, domain, secure);
  72. };
  73.  
  74. // 清除指定多值cookie的子cookie
  75. this.unsetSub = function(name, subname,path, domain, secure) {
  76. var obj = this.getAll(name);
  77. delete obj[subname];
  78. this.setAll(name, obj, null, path, domain, secure);
  79. };
  80. };
  81. return new Cookie();
  82. })();
  1. 博客搬家了,欢迎大家关注,https://bobjin.com

js设置、获取单值cookie和多值cookie的更多相关文章

  1. 【转】分享前端开发中通过js设置/获取cookie的一组方法

    在前端开发中,通常都需要获取并记录用户的某些操作设置,这样可以使用户下一次访问网站时不用进行重复的调整设置同一个功能. js方法的完整代码如下: var cookie = { set:function ...

  2. js 设置下拉框的默认值

    设置下拉框的默认值,直接在option中增加selected就可以了.但是现在要使用JS来设置它的默认值,代码如下: <select name="aaa" id=" ...

  3. 从cookie中取值$.cookie()

    从cookie中取值: var userid = $.cookie("remoteuserid");例子: function delUser() {     var table = ...

  4. js 设置 获取css样式

    先看一段代码,为了体现一会下面说的js用style获取css样式的不同 一:给div设置margin-left(用style设置css样式没什么问题) box.style.marginLeft=&qu ...

  5. JS设置获取cookies

    结合JavaScript权威指南,加上项目开发时在网上搜集的资料,整理了两种设置和获取cookie的方法. <script> //设置cookie  方法一function setCook ...

  6. 关于JS中获取浏览器高度和宽度值的多种方法(多浏览器)

    三种浏览器获取值方法 IE中: document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 ...

  7. 在js中获取页面元素的属性值时,弱类型导致的诡异事件踩坑记录,

    前几天写一个js的时候遇到一个非常诡异的事情,这个问题是这样的,我要获取一个页面的DOM元素的val值,判断这个值是否比某个变量大,这个需求原先数字最大也就是10,现在要改了,可能会更多,这个时候我发 ...

  8. Js中获取对象的所有key值

    假如现在有一个对象 var obj = { A:2 ,B:"Ray" ,C:true ,D:function(){} } 如果想遍历对象obj中的所有键值,一般是用以下方式 for ...

  9. js如何获取到select的option值???

    1.获得选项option的值 var obj = document.getElementByIdx_x(”testSelect”); //定位id var index = obj.selectedIn ...

随机推荐

  1. 深入挖掘.NET序列化机制——实现更易用的序列化方案

    .NET框架为程序员提供了“序列化和反序列化”这一有力的工具,使用它,我们能很容易的将内存中的对象图转化为字节流,并在需要的时候再将其恢复.这一技术的典型应用场景包括[1] : 应用程序运行状态的持久 ...

  2. Azure PowerShell (9) 使用PowerShell导出订阅下所有的Azure VM的Public IP和Private IP

    <Windows Azure Platform 系列文章目录> 笔者在之前的工作中,有客户提出想一次性查看Azure订阅下的所有Azure VM的Public IP和Private IP. ...

  3. Constraint5:unique 约束和null

    unique约束使用unique index来限制列值的唯一性: 创建unique约束之后,column中允许插入null值,unique 约束将两个null值看作是相同的(即null=null为tr ...

  4. Entity Framework Code First添加修改及删除外键关联实体

    1.添加外键关联实体 1>.添加新的Province及City实体 using (var ctx = new PortalContext()) { var city1 = new City { ...

  5. 【原创】开源Math.NET基础数学类库使用(11)C#计算相关系数

                   本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新  开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 前言 ...

  6. Android探索之HttpURLConnection网络请求

    前言: 最近一直想着学习一下比较好的开源网络框架okhttp,想着学习之前还是先总结一下Android原生提供的网络请求.之前一直在使用HttpClient,但是android 6.0(api 23) ...

  7. 初学ReactJS,写了一个RadioButtonList组件

     1 <!DOCTYPE html>  2 <html>  3 <head>  4     <title>React Demo</title> ...

  8. SQL Server-语句类别、数据库范式、系统数据库组成(一)

    前言 终于等到这一天,我要开始重新系统学习数据库了,关于数据库这块,不出意外的话,每天会定时更新一篇且内容不会包含太多,简短的内容,深入的理解,Always to review the basics. ...

  9. 窥探Swift之字符串(String)

    之前总结过Objective-C中的字符串<Objective-C精选字符串处理方法>,学习一门新语言怎么能少的了字符串呢.Swift中的String和Objective-C语言中NSSt ...

  10. vmware安装win7提示No CD-ROM drive to use:GCDROM not loaded

    今天安装win7 64位的操作系统到vmware虚拟机,以为一切事如此的简单,因为自己以前经常拿vmware来装系统,结果确出现下面莫名其妙的错误: 提示说没有CD-ROM,可是我明明在vmware的 ...