lenye_base
Version:
基础方法
86 lines (65 loc) • 2.12 kB
JavaScript
;
var is_object = require('./is_object.js');
var ifnodeorbrowser = require('./ifnodeorbrowser.js');
var windowsimulate = require('./windowsimulate.js');
var url = require('./url.js');
/**
* setCookie / getCookie / deleteCookie
* From https://stackoverflow.com/questions/1458724/how-do-i-set-unset-cookie-with-jquery/1458728#1458728
*/
var setCookie = {};
if (ifnodeorbrowser === 'node') {
// todo
/* global global:true */
if (!global['cookie']) {
global['cookie'] = {};
}
setCookie = (name, value, option) => {
global['cookie'][name] = value;
};
} else {
setCookie = (name, value, option) => {
var longTime = 10;
if (is_object(value)) {
value = JSON.stringify(value);
}
if (!windowsimulate.windows.localStorage) {
windowsimulate.windows.localStorage.setItem(name, value);
} else {
var val = encodeURIComponent(value);
var cookie = encodeURIComponent(name) + '=' + val;
if (option) {
if (option.days) {
var date = new Date();
var ms = option.days * 24 * 3600 * 1000;
date.setTime(date.getTime() + ms);
cookie += '; expires=' + date.toGMTString();
} else if (option.hour) {
var _date = new Date();
var _ms = option.hour * 3600 * 1000;
_date.setTime(_date.getTime() + _ms);
cookie += '; expires=' + _date.toGMTString();
} else {
var _date2 = new Date();
var _ms2 = longTime * 365 * 24 * 3600 * 1000;
_date2.setTime(_date2.getTime() + _ms2);
cookie += '; expires=' + _date2.toGMTString();
}
if (option.path) {
cookie += '; path=' + option.path;
} else {
cookie += '; path=' + '/';
}
if (option.domain) {
cookie += '; domain=' + option.domain;
} else {
cookie += '; domain=' + url.gettopUrl();
}
if (option.secure) cookie += '; true';
}
windowsimulate.windows.document.cookie = cookie;
}
};
}
var setCookie$1 = setCookie;
module.exports = setCookie$1;