local Strageの使用とパッケージ
3268 ワード
もっと読む
(function(window,localStorage,undefined){
var LS = {
set : function(key, value){
// iPhone/iPad setItem() QUOTA_EXCEEDED_ERR
// setItem , removeItem() ok
if( this.get(key) !== null )
this.remove(key);
localStorage.setItem(key, value);
},
// key , undefined, null
get : function(key){
var v = localStorage.getItem(key);
return v === undefined ? null : v;
},
remove : function(key){ localStorage.removeItem(key); },
clear : function(){ localStorage.clear(); },
each : function(fn){
var n = localStorage.length, i = 0, fn = fn || function(){}, key;
for(; i
var LocalData = {
hname:location.hostname?location.hostname:'localStatus',
isLocalStorage:window.localStorage?true:false,
dataDom:null,
initDom:function(){ // userData
if(!this.dataDom){
try{
this.dataDom = document.createElement('input');// hidden input
this.dataDom.type = 'hidden';
this.dataDom.style.display = "none";
this.dataDom.addBehavior('#default#userData');// userData
document.body.appendChild(this.dataDom);
var exDate = new Date();
exDate = exDate.getDate()+30;
this.dataDom.expires = exDate.toUTCString();//
}catch(ex){
return false;
}
}
return true;
},
set:function(key,value){
if(this.isLocalStorage){
if( this.get(key) !== null )
this.remove(key);
window.localStorage.setItem(key,value);
}else{
if(this.initDom()){
this.dataDom.load(this.hname);
this.dataDom.setAttribute(key,value);
this.dataDom.save(this.hname)
}
}
},
get:function(key){
if(this.isLocalStorage){
var v = window.localStorage.getItem(key);
return v === undefined ? null : v;
}else{
if(this.initDom()){
this.dataDom.load(this.hname);
return this.dataDom.getAttribute(key);
}
}
},
remove:function(key){
if(this.isLocalStorage){
window.localStorage.removeItem(key);
}else{
if(this.initDom()){
this.dataDom.load(this.hname);
this.dataDom.removeAttribute(key);
this.dataDom.save(this.hname)
}
}
}
}