|
if (!window.BakeCookies) { |
|
window.BakeCookies = { |
|
set: (function () { |
|
var days; |
|
|
|
return function BakeCookies_set(name, value, expires) { |
|
if ((expires != null) && !(expires instanceof Date)) { |
|
switch (typeof (expires)) { |
|
case "number": |
|
days = expires; |
|
expires = new Date(); |
|
expires.setDate(expires.getDate() + days); |
|
break; |
|
case "string": |
|
expires = new Date(expires); |
|
break; |
|
default: |
|
expires = null; |
|
} |
|
|
|
} |
|
|
|
document.cookie = ( |
|
escape(name) + "=" + escape(value) + |
|
( |
|
expires == null |
|
? "" |
|
: "; expires=" + expires.toUTCString() |
|
) |
|
); |
|
}; |
|
})(), |
|
get: (function () { |
|
var find = /(?:^|;|\s){name}=([\W\w]*?)(?:;|\s|$)/.source, found; |
|
|
|
return function BakeCookies_get(name) { |
|
found = new RegExp(find.replace("{name}", escape(name))).exec(document.cookie); |
|
if (found) { |
|
return unescape(found[1]); |
|
} |
|
else { return null; } |
|
}; |
|
})() |
|
}; |
|
} |
|
|
|
|
|
// tests |
|
var future_expiry = new Date(); |
|
future_expiry.setYear(3000); |
|
|
|
// set |
|
BakeCookies.set('1 day expiry', 'set', 1); |
|
BakeCookies.set('with date', 'set2', future_expiry); |
|
BakeCookies.set('session', '3set'); |
|
BakeCookies.set('expired', 'value', new Date(0)); |
|
|
|
console.log("cookie: ", document.cookie); |
|
|
|
// get |
|
console.log("1 day expiry: ", BakeCookies.get("1 day expiry")); |
|
console.log("with date: ", BakeCookies.get("with date")); |
|
console.log("session: ", BakeCookies.get("session")); |
|
console.log("expired: ", BakeCookies.get("expired")); |