IE浏览器用userData,主流浏览器用LocalStorage来解决本地存储的需求。userData存储的数据对于同一目录下的地址是可见的,如http://www.zhoumingzhi.com/1/foo.html可以访问到http://www.zhoumingzhi.com/1/bar.html存的数据。而LocalStorage存储的数据对相同域名下的所有页面都是可见的。
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);
}
}
}
}

0 Comments.