-
Notifications
You must be signed in to change notification settings - Fork 123
Expand file tree
/
Copy pathlocalstorage.js
More file actions
71 lines (65 loc) · 1.93 KB
/
localstorage.js
File metadata and controls
71 lines (65 loc) · 1.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
class Cookie {
static prefix() {
return `__${pixelFuncName}_`;
}
static set(name, value, minutes) {
var now = new Date()
var ttl = minutes * 60 * 1000;
var item = {
value: value,
expiry: now.getTime() + ttl,
}
localStorage.setItem(`${this.prefix()}${name}`, JSON.stringify(item))
}
static get(name) {
var name = `${this.prefix()}${name}`;
var itemStr = localStorage.getItem(name)
if (!itemStr) {
return null
}
try {
var item = JSON.parse(itemStr)
} catch(e) { //not a json backward compatiblity
localStorage.removeItem(name)
return null
}
const now = new Date()
if (now.getTime() > item.expiry) {
localStorage.removeItem(name)
return null
}
return item.value
}
static delete(name) {
this.set(name,'',-100);
}
static exists(name) {
return Helper.isPresent(this.get(name));
}
static setUtms() {
var utmArray = ['utm_source', 'utm_medium', 'utm_term', 'utm_content', 'utm_campaign'];
var exists = false;
for (var i = 0, l = utmArray.length; i < l; i++) {
if (Helper.isPresent(Url.getParameterByName(utmArray[i]))) {
exists = true;
break;
}
}
if (exists) {
var val, save = {};
for (var i = 0, l = utmArray.length; i < l; i++) {
val = Url.getParameterByName(utmArray[i]);
if (Helper.isPresent(val)) {
save[utmArray[i]] = val;
}
}
this.set('utm', JSON.stringify(save));
}
}
static getUtm(name) {
if (this.exists('utm')) {
var utms = JSON.parse(this.get('utm'));
return name in utms ? utms[name] : '';
}
}
}