-
Notifications
You must be signed in to change notification settings - Fork 121
/
Copy pathcookie.js
62 lines (56 loc) · 1.67 KB
/
cookie.js
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
class Cookie {
static prefix() {
return `__${pixelFuncName}_`;
}
static set(name, value, minutes, path = '/') {
var expires = '';
if (Helper.isPresent(minutes)) {
var date = new Date();
date.setTime(date.getTime() + (minutes * 60 * 1000));
expires = `expires=${date.toGMTString()}; `;
}
document.cookie = `${this.prefix()}${name}=${value}; ${expires}path=${path}; SameSite=Lax`;
}
static get(name) {
var name = `${this.prefix()}${name}=`;
var ca = document.cookie.split(';');
for (var i=0; i<ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1);
if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
}
return;
}
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', 'utm_source_platform', 'utm_creative_format', 'utm_marketing_tactic'];
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] : '';
}
}
}