- var store = (function () {
- var api = {},
- win = window,
- doc = win.document,
- localStorageName = 'localStorage',
- globalStorageName = 'globalStorage',
- storage;
- api.set = function (key, value) {};
- api.get = function (key) {};
- api.remove = function (key) {};
- api.clear = function () {};
- if (localStorageName in win && win[localStorageName]) {
- storage = win[localStorageName];
- api.set = function (key, val) { storage.setItem(key, val) };
- api.get = function (key) { return storage.getItem(key) };
- api.remove = function (key) { storage.removeItem(key) };
- api.clear = function () { storage.clear() };
- } else if (globalStorageName in win && win[globalStorageName]) {
- storage = win[globalStorageName][win.location.hostname];
- api.set = function (key, val) { storage[key] = val };
- api.get = function (key) { return storage[key] && storage[key].value };
- api.remove = function (key) { delete storage[key] };
- api.clear = function () { for (var key in storage ) { delete storage[key] } };
- } else if (doc.documentElement.addBehavior) {
- function getStorage() {
- if (storage) { return storage }
- storage = doc.body.appendChild(doc.createElement('div'));
- storage.style.display = 'none';
- // See http://msdn.microsoft.com/en-us/library/ms531081(v=VS.85).aspx
- // and http://msdn.microsoft.com/en-us/library/ms531424(v=VS.85).aspx
- storage.addBehavior('#default#userData');
- storage.load(localStorageName);
- return storage;
- }
- api.set = function (key, val) {
- var storage = getStorage();
- storage.setAttribute(key, val);
- storage.save(localStorageName);
- };
- api.get = function (key) {
- var storage = getStorage();
- return storage.getAttribute(key);
- };
- api.remove = function (key) {
- var storage = getStorage();
- storage.removeAttribute(key);
- storage.save(localStorageName);
- }
- api.clear = function () {
- var storage = getStorage();
- var attributes = storage.XMLDocument.documentElement.attributes;;
- storage.load(localStorageName);
- for (var i=0, attr; attr = attributes[i]; i++) {
- storage.removeAttribute(attr.name);
- }
- storage.save(localStorageName);
- }
- }
- return api;
- })();
- //该片段来自于http://www.codesnippet.cn/detail/030920135565.html
来源: http://www.codesnippet.cn/detail/030920135565.html