Показать сообщение отдельно
  #3 (permalink)  
Старый 06.01.2012, 16:16
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

вот тебе немного моих наработок)

функция 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()
}

Последний раз редактировалось Livaanderiamarum, 06.01.2012 в 16:21.
Ответить с цитированием