lenye_base
Version:
基础方法
84 lines (64 loc) • 2.05 kB
JavaScript
import isObject from './is_object.js';
import ifnodeorbrowser from './ifnodeorbrowser.js';
import { windows } from './windowsimulate.js';
import http from './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 (isObject(value)) {
value = JSON.stringify(value);
}
if (!windows.localStorage) {
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=' + http.gettopUrl();
}
if (option.secure) cookie += '; true';
}
windows.document.cookie = cookie;
}
};
}
var setCookie$1 = setCookie;
export default setCookie$1;