хранилище сессий
сделал скрипт записи в "свое" хранилище если не работает локальное. но не могу понять как сделать то же самое для хранилища сессии.
то есть как допилить скрипт что бы и sessionStorage так же записывался. перепробовал разные варианты и както не получается. все равно записывает в хранилище сессий. как самый быстрый вариант думал что можно переназначить зранилище сессии на локальное хранилище а дальше оно уже скриптом запишет все в выдуманное хранилище. но почему то не получается. var userLocalStorage = function() { var userLocalStorage = {}, storage; // If Storage exists we modify it to write to our userLocalStorage object instead. // If Storage does not exist we create an empty object. if (window.Storage && window.localStorage) { storage = window.Storage.prototype; } else { window.localStorage = {}; storage = window.localStorage; } // For older IE if (!window.location.origin) { window.location.origin = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ':' + window.location.port: ''); } var dispatchStorageEvent = function(key, newValue) { var oldValue = (key == null) ? null : storage.getItem(key), // `==` to match both null and undefined url = location.href.substr(location.origin.length), storageEvent = document.createEvent('StorageEvent'); // For IE storageEvent.initStorageEvent('storage', false, false, key, oldValue, newValue, url, null); window.dispatchEvent(storageEvent); }; storage.key = function(i) { var key = Object.keys(userLocalStorage)[i]; return typeof key === 'string' ? key : null; }; storage.getItem = function(key) { return typeof userLocalStorage[key] === 'string' ? userLocalStorage[key] : null; }; storage.setItem = function(key, value) { dispatchStorageEvent(key, value); userLocalStorage[key] = String(value); }; storage.removeItem = function(key) { dispatchStorageEvent(key, null); delete userLocalStorage[key]; }; storage.clear = function() { dispatchStorageEvent(null, null); userLocalStorage = {}; }; }; //check and use if (typeof window.localStorage === 'object') { try { localStorage.setItem('localStorageTest', 1); // localStorage.removeItem('localStorageTest'); } catch (e) { //use our fake storage if get error in safari userLocalStorage(); } } else { // Use fake localStorage for any browser that does not support it. userLocalStorage(); } |
Часовой пояс GMT +3, время: 04:23. |