Skip to content

Instantly share code, notes, and snippets.

@callumacrae
Created June 3, 2011 18:16
Show Gist options
  • Select an option

  • Save callumacrae/1006846 to your computer and use it in GitHub Desktop.

Select an option

Save callumacrae/1006846 to your computer and use it in GitHub Desktop.
var storage = {};
if (window.localStorage)
{
storage.get = function(name)
{
if (window.localStorage[name] === undefined)
{
return undefined;
}
return JSON.parse(window.localStorage[name]);
}
storage.set = function(name, data)
{
window.localStorage[name] = JSON.stringify(data);
}
storage.rem = function(name)
{
delete window.localStorage[name];
}
storage.is = function(name)
{
return !(window.localStorage[name] === undefined);
}
}
else
{
storage.get = function(name)
{
var i, cookies, cookie
name = name + '=';
cookies = document.cookie.split(';');
for (i = 0; i < cookies.length; i++)
{
while (cookies[i].slice(0, 1) === ' ')
{
cookies[i] = cookies[i].slice(1);
}
if (cookies[i].indexOf(name) === 0)
{
return JSON.parse(cookies[i].slice(name.length));
}
}
return undefined;
}
storage.set = function(name, data)
{
var date = new Date();
date.setTime(date.getTime() + 2592000000);
var expires = '; expires=' + date.toGMTString();
data = JSON.stringify(data);
document.cookie = name + '=' + data + expires + '; path=/';
}
storage.rem = function(name)
{
var date = new Date();
date.setTime(date.getTime() - 1);
var expires = date.toGMTString();
document.cookie = name + '= ; expires=' + expires + '; path=/';
}
storage.is = function(name)
{
return !(storage.get(name) === undefined);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment