вот тебе немного моих наработок)
функция
storge()
принимает 2 параметра
первый ИМЯ, второй значение. Так же в значение можно передавать обьекты {}.
например
storge('рекорды' , {'саша' : 200, 'маша' : 200} )
чтобы получить значение передаешь просто имя ключа
var qq = storge('рекорды')
// localstorge
storge = function() {
// если аргумент один
if (arguments.length == 1) {
var arg1 = arguments[0];
// если первый аргумент строка
if (typeof arg1 == 'string') {
var retString = localStorage.getItem(arg1);
if (retString == null) {
return false
}
var last = retString.length - 1;
// если строка в сторче похожа на json обьект
if ((retString[0] == '{' && retString[last] == '}')
|| (retString[0] == '[' && retString[last] == ']')) {
// то распарсить и вернуть обьект
return JSON.parse(retString)
}// если нет
else {// то вернуть просто строку
return retString
}
}// если первый аргумент обьект
else if (typeof arg1 == 'object') {
for (prop in arg1) {// то засунуть значения и ключи в сторч
try {
localStorage.setItem(prop, arg1[prop]);
return true
} catch (e) {
if (e == QUOTA_EXCEEDED_ERR) {
alert('Локальное хранилище переполнено');
return false
}
}
}
}
// если аргумента два
} else if (arguments.length == 2) {
var arg1 = arguments[0];
var arg2 = arguments[1];
// если второй аргумент строка или номер
if (typeof arg2 == 'string' || typeof arg2 == 'number') {
try {
// то засунуть ключ и значение в сторч
localStorage.setItem(arg1, arg2)
return true
} catch (e) {
if (e == QUOTA_EXCEEDED_ERR) {
alert('Локальное хранилище переполнено');
return true
}
}
}// если второй аргумент null
else if (arg2 == null) {
// то удалить значение и ключ
localStorage.removeItem(arg1)
return true
}
// если второй аргумент обьект
else if (typeof arg2 == 'object') {
try {
// то преобразовать в json строку и засунуть в сторч
localStorage.setItem(arg1, JSON.stringify(arg2))
return true
} catch (e) {
if (e == QUOTA_EXCEEDED_ERR) {
alert('Локальное хранилище переполнено');
return true
}
}
}
}
}
// очистить сторч
storge.clear = function() {
localStorage.clear()
}