1+ // возвращает cookie с именем name, если есть, если нет, то undefined
2+ function getCookie(name) {
3+ var matches = document.cookie.match(new RegExp(
4+ "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
5+ ));
6+ return matches ? decodeURIComponent(matches[1]) : undefined;
7+ }
8+
9+ // устанавливает cookie с именем name и значением value
10+ // options - объект с свойствами cookie (expires, path, domain, secure)
11+ function setCookie(name, value, options) {
12+ options = options || {};
13+
14+ var expires = options.expires;
15+
16+ if (typeof expires == "number" && expires) {
17+ var d = new Date();
18+ d.setTime(d.getTime() + expires * 1000);
19+ expires = options.expires = d;
20+ }
21+ if (expires && expires.toUTCString) {
22+ options.expires = expires.toUTCString();
23+ }
24+
25+ value = encodeURIComponent(value);
26+
27+ var updatedCookie = name + "=" + value;
28+
29+ for (var propName in options) {
30+ updatedCookie += "; " + propName;
31+ var propValue = options[propName];
32+ if (propValue !== true) {
33+ updatedCookie += "=" + propValue;
34+ }
35+ }
36+
37+ document.cookie = updatedCookie;
38+ }
39+
40+ // удаляет cookie с именем name
41+ function deleteCookie(name) {
42+ setCookie(name, "", {
43+ expires: -1
44+ })
45+ }
0 commit comments