User:Mike Dillon/Scripts/cookies.js: Difference between revisions

Content deleted Content added
yet another cookie handling script
 
m include whitespace in split expression
 
(8 intermediate revisions by the same user not shown)
Line 1:
// Requires: ...
 
/* <pre><nowiki> */
 
function readCookie(name) {
var nameMatch =if (!name) + "="return;
var cookiesnameMatch = documentname.cookie.splittoLowerCase() + ";=");
var cookies = document.cookie.split(/\s*;\s*/);
for (var i in cookies) {
if (cookies[i].toLowerCase().indexOf(nameMatch) == 0) {
return cookies[i].substr(nameMatch.length);
}
Line 13 ⟶ 12:
}
 
function writeCookie(name, value, options = {}) {
if (value.indexOf(";") != -1) throw "Cookie value cannot contain semi-colons";
 
if (!options) options = {};
 
var cookie = name + "=" + value;
if (options.___domain) cookie += ";___domain=" + options.___domain;
if (options.path) cookie += ";path=" + options.path;
if (options.expires || options.expiresInDays > 0) {
var expires = options.expires;
if (!expires) {
expires = new Date(new Date().getTime() + options.expiresInDays * 86400 * 1000);
}
if (expires.toGMTString) expires = expires.toGMTString();
cookie += ";expires=" + expires;
}
 
document.cookie = cookie;
 
return cookie;
}
 
function deleteCookie(name, options) {
if (!options) options = {};
 
var epoch = new Date();
epoch.setTime(0);
writeCookie(name,options.expires "", { expires:= epoch });
 
return writeCookie(name, "", options);
}