JavaScript操作cookie與localStorage
stavencsdn發表於2016-09-09
js操作cookie
- var Cookie = {
- setCookie: function(key, value, expiredays) {
- expiredays = expiredays || 30; //預設30天
- var exdate = new Date();
- exdate.setDate(exdate.getDate() + expiredays);
- document.cookie = key + "=" + escape(value) + ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString());
- },
- getCookie: function(key) {
- var arr, reg = new RegExp("(^| )" + key + "=([^;]*)(;|$)");
- return (arr = document.cookie.match(reg)) ? unescape(arr[2]) : null;
- },
- removeCookie: function(key) {
- var exp = new Date();
- exp.setTime(exp.getTime() - 1);
- var cval = this.getCookie(key);
- if(cval != null)
- document.cookie = key + "=" + cval + ";expires=" + exp.toGMTString();
- }
- };
- Cookie.setCookie('name', 'staven');
- Cookie.removeCookie('name');
- Cookie.getCookie('name');
使用localstorage儲存資料
- var LocalStorage = {
- getLs: function(str) {
- var msgArr = localStorage.getItem(str);
- return !msgArr ? msgArr = [] : msgArr = msgArr.split(',');
- },
- /**
- *
- * @param {String} key 鍵值
- * @param {String} str 須存入的內容,若存入多個用"/"隔開
- * @param {Number} num 最大存入的條數
- */
- setLs: function(key, str, num) {
- var msgArr = this.getLs(key);
- num = num || 10;
- str = str || '';
- if(str.indexOf("/") == -1 && msgArr.indexOf(str) == -1){
- msgArr.unshift(str);
- }else{
- var list = str.split('/');
- for(var i=0,len=list.length; i<len; i++){
- if(!!list[i] && msgArr.indexOf(list[i]) == -1){
- msgArr.unshift(list[i]);
- if(msgArr.length == num+1) return;
- }
- }
- }
- if(msgArr.length == num+1) {
- msgArr.pop();
- }
- msgArr = msgArr.join(',');
- localStorage.setItem(key, msgArr);
- },
- removeLs: function(str) {
- localStorage.removeItem(str);
- },
- clearLs: function(str) {
- localStorage.clear();
- }
- };
- LocalStorage.setLs('name',"staven", 10);
- //LocalStorage.setLs('name',"1/2/3/4/5/6", 8);
- console.log(LocalStorage.getLs('name'));
- //LocalStorage.removeLs('name');