Skip to content

Instantly share code, notes, and snippets.

@mingzhi22
Created March 15, 2014 16:29
Show Gist options
  • Save mingzhi22/9570014 to your computer and use it in GitHub Desktop.
Save mingzhi22/9570014 to your computer and use it in GitHub Desktop.
本地存储的兼容解决方案
var localStorageAdapter = {
storeName: 'NTESBBS',
isLocalStorage: window.localStorage ? true : false,
dataDOM: this.isLocalStorage ? null : (function () {
try {
var dataDOM = document.createElement('input'),
expires = new Date();
dataDOM.type = 'hidden';
dataDOM.style.display = 'none';
dataDOM.addBehavior('#default#userData');
document.body.appendChild(dataDOM);
expires.setDate(expires.getDate() + 30);
dataDOM.expires = expires.toUTCString();
return dataDOM;
} catch (ex) {
return null;
}
})(),
set: function (key, value) {
var dataDOM = this.dataDOM;
if (this.isLocalStorage) {
window.localStorage.setItem(key, value);
} else {
if (dataDOM) {
dataDOM.load(this.storeName);
dataDOM.setAttribute(key, value);
dataDOM.save(this.storeName);
}
}
},
get: function (key) {
var dataDOM = this.dataDOM;
if (this.isLocalStorage) {
return window.localStorage.getItem(key);
} else {
if (dataDOM) {
dataDOM.load(this.storeName);
return dataDOM.getAttribute(key);
}
}
},
remove: function (key) {
var dataDOM = this.dataDOM;
if (this.isLocalStorage) {
window.localStorage.removeItem(key);
} else {
if (dataDOM) {
dataDOM.load(this.storeName);
dataDOM.removeAttribute(key);
dataDOM.save(this.storeName);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment