1 /** 
  2  * JET (Javascript Extension Tools) 
  3  * Copyright (c) 2009, KDV.cn, All rights reserved.
  4  * Code licensed under the BSD License:
  5  * http://developer.kdv.cn/jet/license.txt
  6  *
  7  * @fileOverview Jx!
  8  * @version 1.0
  9  * @author  Kinvix(<a href="mailto:Kinvix@gmail.com">Kinvix@gmail.com</a>)
 10  * @description 
 11  * 
 12  */
 13 
 14 /** 
 15  * @description
 16  * Package: jet.cookie
 17  *
 18  * Need package:
 19  * jet.core.js
 20  * 
 21  */
 22 
 23 
 24 /**
 25  * cookie类
 26  * 
 27  * @namespace J.cookie
 28  */
 29 Jx().$package(function(J){
 30     var domainPrefix = window.location.host;
 31     
 32     /**
 33      * cookie 名字空间
 34      * @namespace 
 35      * @name cookie
 36      */
 37     J.cookie = 
 38     /**
 39      * @lends cookie
 40      */ 
 41     {
 42         
 43         /**
 44          * 设置一个cookie
 45          * 
 46          * @param {String} name cookie名称
 47          * @param {String} value cookie值
 48          * @param {String} domain 所在域名
 49          * @param {String} path 所在路径
 50          * @param {Number} hour 存活时间,单位:小时
 51          * @return {Boolean} 是否成功
 52          */
 53         set : function(name, value, domain, path, hour) {
 54             if (hour) {
 55                 var today = new Date();
 56                 var expire = new Date();
 57                 expire.setTime(today.getTime() + 3600000 * hour);
 58             }
 59             window.document.cookie = name + "=" + value + "; " + (hour ? ("expires=" + expire.toGMTString() + "; ") : "") + (path ? ("path=" + path + "; ") : "path=/; ") + (domain ? ("domain=" + domain + ";") : ("domain=" + domainPrefix + ";"));
 60             return true;
 61         },
 62     
 63         /**
 64          * 获取指定名称的cookie值
 65          * 
 66          * @param {String} name cookie名称
 67          * @return {String} 获取到的cookie值
 68          */
 69         get : function(name) {
 70             var r = new RegExp("(?:^|;+|\\s+)" + name + "=([^;]*)");
 71             // var r = new RegExp("(?:^|;+|\\s+)" + name + "=([^;]*?)(?:;|$)");
 72             var m = window.document.cookie.match(r);
 73             return (!m ? "" : m[1]);
 74             // document.cookie.match(new
 75             // RegExp("(?:^|;+|\\s+)speedMode=([^;]*?)(?:;|$)"))
 76         },
 77     
 78         /**
 79          * 删除指定cookie,复写为过期
 80          * 
 81          * @param {String} name cookie名称
 82          * @param {String} domain 所在域
 83          * @param {String} path 所在路径
 84          */
 85         remove : function(name, domain, path) {
 86             window.document.cookie = name + "=; expires=Mon, 26 Jul 1997 05:00:00 GMT; " + (path ? ("path=" + path + "; ") : "path=/; ") + (domain ? ("domain=" + domain + ";") : ("domain=" + domainPrefix + ";"));
 87         }
 88     };
 89 
 90 });
 91 
 92 Jx().$package(function(J){
 93     /**
 94      * localStorage 名字空间
 95      * @namespace 
 96      * @name localStorage
 97      */
 98     J.localStorage = 
 99     /**
100      * @lends localStorage
101      */ 
102     {
103         
104         /**
105          * 设置一个localStorage
106          * @param {String} name
107          * @param {String} value
108          */
109         setItem : function(name, value) {
110             if(this.isSupports()){
111                 window.localStorage.setItem(name,value);
112             }
113         },
114         /**
115          * 根据名字读取值
116          * @param {String} name
117          * @return {String}
118          */
119         getItem : function(name) {
120             if(this.isSupports()){
121                 return window.localStorage.getItem(name);
122             }
123             return null;
124         },
125         /**
126          * 根据名字移除值
127          * @param {String} name
128          */
129         removeItem : function(name) {
130             if(this.isSupports()){
131                 window.localStorage.removeItem(name);
132             }
133         },
134         /**
135          * 清空 localStorage
136          */
137         clear : function(){
138             if(this.isSupports()){
139                 window.localStorage.clear();
140             }
141         },
142         /**
143          * 判断是否支持 localStorage
144          */
145         isSupports : function(){
146             return ('localStorage' in window)&&window['localStorage']!== null;
147         }
148     };
149 
150 });
151