Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if (typeof window.localStorage == 'undefined' || typeof window.sessionStorage == 'undefined') (function () {
- var Storage = function (type) {
- function createCookie(name, value, days) {
- var date;
- var expires;
- if (days) {
- date = new Date();
- date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
- expires = "; expires=" + date.toGMTString();
- } else {
- expires = "";
- }
- document.cookie = name + "=" + value + expires + "; path=/";
- }
- function readCookie(name) {
- var nameEQ = name + "=";
- var ca = document.cookie.split(';');
- for (var i = 0; i < ca.length; i++) {
- var c = ca[i];
- while (c.charAt(0) == ' ') {
- c = c.substring(1, c.length);
- }
- if (c.indexOf(nameEQ) == 0) {
- return c.substring(nameEQ.length, c.length);
- }
- }
- return null;
- }
- function setData(data) {
- data = JSON.stringify(data);
- if (type == 'session') {
- window.name = data;
- } else {
- createCookie('localStorage', data, 365);
- }
- }
- function clearData() {
- if (type == 'session') {
- window.name = '';
- } else {
- createCookie('localStorage', '', 365);
- }
- }
- function getData() {
- var data = type == 'session' ? window.name : readCookie('localStorage');
- return data ? JSON.parse(data) : {};
- }
- // initialise if there's already data
- var data = getData();
- return {
- length: 0,
- clear: function () {
- data = {};
- this.length = 0;
- clearData();
- },
- getItem: function (key) {
- return data[key] === undefined ? null : data[key];
- },
- key: function (i) {
- var ctr = 0;
- for (var k in data) {
- if (ctr == i) return k;
- else ctr++;
- }
- return null;
- },
- removeItem: function (key) {
- delete data[key];
- this.length--;
- setData(data);
- },
- setItem: function (key, value) {
- data[key] = value + '';
- this.length++;
- setData(data);
- }
- };
- };
- if (typeof window.localStorage == 'undefined') window.localStorage = new Storage('local');
- if (typeof window.sessionStorage == 'undefined') window.sessionStorage = new Storage('session');
- })();
Advertisement
Add Comment
Please, Sign In to add comment