当前位置 : 主页 > 网络编程 > JavaScript >

localstorage的实现

来源:互联网 收集:自由互联 发布时间:2021-07-03
1. [代码] [JavaScript]代码 htmlheadtitletest/title/headbodyinput type="text" id="local" input type="button" id="clear" value="clear"script type="text/javascript"// ![CDATA[(function(){window.localData = { hname:location.hostname?locatio

1. [代码][JavaScript]代码    

<html>
<head>
<title>test</title>

</head>
<body>
<input type="text" id="local" >
<input type="button" id="clear" value="clear">
<script type="text/javascript">
// <![CDATA[
(function(){
window.localData = {
        hname:location.hostname?location.hostname:'localStatus',
        isLocalStorage:window.localStorage?true:false,
        dataDom:null,

        initDom:function(){
            if(!this.dataDom){
                try{
                    this.dataDom = document.createElement('input');
                    this.dataDom.type = 'hidden';
                    this.dataDom.style.display = "none";
                    this.dataDom.addBehavior('#default#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){
                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){
                return window.localStorage.getItem(key);
            }else{
                if(this.initDom()){
                    this.dataDom.load(this.hname);
                    return this.dataDom.getAttribute(key);
                }
            }
        },
        remove:function(key){
            if(this.isLocalStorage){
                localStorage.removeItem(key);
            }else{
                if(this.initDom()){
                    this.dataDom.load(this.hname);
                    this.dataDom.removeAttribute(key);
                    this.dataDom.save(this.hname)
                }
            }
        }
    }

    var text = document.getElementById('local');
    var btn = document.getElementById('clear');
    window.onbeforeunload = function(){
        localData.set('beiyuuData',text.value);
    }
    btn.onclick = function(){localData.remove('beiyuuData');text.value=''};
    if(localData.get('beiyuuData')){
        text.value = localData.get('beiyuuData');
    }
})()
// ]]>
</script>
</body>

</html>

2. [文件] storage.html ~ 3KB     下载(1)    

<html>
<head>
<title>test</title>

</head>
<body>
<input type="text" id="local" >
<input type="button" id="clear" value="clear">
<script type="text/javascript">
// <![CDATA[
(function(){
window.localData = {
        hname:location.hostname?location.hostname:'localStatus',
        isLocalStorage:window.localStorage?true:false,
        dataDom:null,

        initDom:function(){
            if(!this.dataDom){
                try{
                    this.dataDom = document.createElement('input');
                    this.dataDom.type = 'hidden';
                    this.dataDom.style.display = "none";
                    this.dataDom.addBehavior('#default#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){
                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){
                return window.localStorage.getItem(key);
            }else{
                if(this.initDom()){
                    this.dataDom.load(this.hname);
                    return this.dataDom.getAttribute(key);
                }
            }
        },
        remove:function(key){
            if(this.isLocalStorage){
                localStorage.removeItem(key);
            }else{
                if(this.initDom()){
                    this.dataDom.load(this.hname);
                    this.dataDom.removeAttribute(key);
                    this.dataDom.save(this.hname)
                }
            }
        }
    }

    var text = document.getElementById('local');
    var btn = document.getElementById('clear');
    window.onbeforeunload = function(){
        localData.set('beiyuuData',text.value);
    }
    btn.onclick = function(){localData.remove('beiyuuData');text.value=''};
    if(localData.get('beiyuuData')){
        text.value = localData.get('beiyuuData');
    }
})()
// ]]>
</script>
</body>

</html>
网友评论