WebページのオフラインローカルストレージはLocalstorageとuserdataを使用して実現され、主流ブラウザと互換性があります.


本文はネット上の先輩たちが書いたことを参考にして、自分でいくつかの方法を追加して修正しました.私はchrome、firefox、ie 8、ie 9とie 10の互換モードのテストの下で正常に運行することができて、ここに置いて必要な人に使いましょう.
ここではまずlocalstorageとuserdataについて簡単に紹介します.
localstorageはhtml 5の特性であり、ローカルストレージをサポートする容量が大きく、userdataはie家である.ie 8からlocalstorageがサポートされていますが、htmlがサーバ側に必要で、ローカルであればieはサポートされていません.以下のコードはオフラインでローカルに格納できるもので、主な考え方はlocalstorageとuserdataを同じ方法インタフェースにカプセル化し、ブラウザタイプを判断し、異なる特性を用いて同じインタフェースを実現することです.このようなメリットは、操作方法がブラウザによって変更されずにもう一度書くことです.実は簡単です.
<html>
<head>
<script type="text/javascript">
    
          var Sys = {};

        var ua = navigator.userAgent.toLowerCase();

        var s;

        (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :

        (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :

        (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :

         
        //      
          if (Sys.firefox)
          {    
               var local = {
                    setItem:function(nam,val)
                    {
                         window.localStorage.setItem(nam,val);
                    },
                    getItem:function(nam)
                    {
                         return window.localStorage.getItem(nam);
                    },
                    removeItem:function(nam)
                    {
                         window.localStorage.removeItem(nam);
                    },
                    clear:function()
                    {
                         window.localStorage.clear();
                    },
                    length:function()
                    {
                         window.localStorage.length();
                    },
                    key:function(i)
                    {
                         window.localStorage.key(i);
                    }
               }
               document.write('Firefox: ' + Sys.firefox);
          }
              
         
        if (Sys.ie)
          {         
               var  box = document.body || document.getElementsByTagName("head")[0] || document.documentElement;

               UserData_obj = document.createElement('input');

               UserData_obj.type = "hidden";

               UserData_obj.addBehavior ("#default#userData");

               box.appendChild(UserData_obj);

                  //     

                             

               var local= {

               setItem:function(nam,val)

                    {
                         UserData_obj.load(nam);

                         UserData_obj.setAttribute(nam,val);

                         var d= new Date();

                         d.setDate(d.getDate()+700);

                         UserData_obj.expires=d.toUTCString();

                         UserData_obj.save(nam);

                         UserData_obj.load("local_userdata");

                         var dt=UserData_obj.getAttribute("local_userdata");

                         if(dt==null)dt='';
                        
                         var reg=new RegExp(nam);
                         //  nam      ,       
                         if(!reg.test(dt)){
                              dt=dt+nam+",";
                         }

                         UserData_obj.setAttribute("local_userdata",dt);

                         UserData_obj.save("local_userdata");
                    },

                         //   setItem
              
                    getItem:function(nam)

                    {
                         UserData_obj.load(nam);

                         return UserData_obj.getAttribute(nam);
                    },

               //   getItem

              

               removeItem:function(nam)

                    {
                         UserData_obj.load(nam);

                         clear_userdata(nam);

                         UserData_obj.load("local_userdata");

                         var dt=UserData_obj.getAttribute("local_userdata");

                         var reg=new RegExp(nam+",","g");

                         dt=dt.replace(reg,'');

                         var d= new Date();

                         d.setDate(d.getDate()+700);

                         UserData_obj.expires= d.toUTCString();

                         UserData_obj.setAttribute("local_userdata",dt);

                         UserData_obj.save("local_userdata");

                    },

               //   removeItem

              

               clear:function()
                    {

                         UserData_obj.load("local_userdata");

                         var dts=UserData_obj.getAttribute("local_userdata").split(",");

                         for (var i in dts)
                       {
                              if(dts[i]!='')
                              {
                                   UserData_obj.load(dts[i]);
                                   UserData_obj.removeAttribute(dts[i]);
                                   clear_userdata(dts[i]);
                              }
                         }
                         UserData_obj.load("local_userdata");
                         UserData_obj.removeAttribute("local_userdata");
                         clear_userdata("local_userdata")

                    },

               //   clear();
               clear2:function()
                    {
                         UserData_obj.load("local_userdata");
                        
                         var dts=UserData_obj.getAttribute("local_userdata").split(",");

                         for (var i in dts)
                       {
                              if(dts[i]!='')
                              {
                                   UserData_obj.load(dts[i]);
                                   UserData_obj.removeAttribute(dts[i]);
                                   clear_userdata(dts[i]);
                        
                              }
                         }
                         clear_userdata("local_userdata");
                    },
               each:function()
                    {
                         UserData_obj.load("local_userdata");
                        
                         var dts=UserData_obj.getAttribute("local_userdata").split(",");
                         for(var i in dts){
                              alert(dts[i]);
                         }

                         return dts;
                    }
              

               }

               function clear_userdata(keyname)//    keyname     

               {
                    var keyname;

                    var d= new Date();

                    d.setDate(d.getDate()-1);

                    UserData_obj.load(keyname);

                    UserData_obj.expires=d.toUTCString();

                    UserData_obj.save(keyname);

               }
               document.write('IE: ' + Sys.ie);
              
          }

       
         
        if (Sys.chrome){
              
               local = {
                    setItem:function(nam,val)
                    {
                         window.localStorage.setItem(nam,val);
                    },
                    getItem:function(nam)
                    {
                         return window.localStorage.getItem(nam);
                    },
                    removeItem:function(nam)
                    {
                         window.localStorage.removeItem(nam);
                    },
                    clear:function()
                    {
                         window.clear();
                    },
                    length:function()
                    {
                         window.localStorage.length();
                    },
                    key:function(i)
                    {
                         window.localStorage.key(i);
                    }
               }
               document.write('chrome: ' + Sys.chrome);
          }


</script>
</head>
<body>


<script type="text/javascript">
window.local.setItem("name_new1","1liangli")
var name1 = window.local.getItem("name_new1");
document.write(name1);
document.write("</br>");
</script>
</body>
</html>
参照アドレス:http://www.cnblogs.com/xiaowei0705/archive/2011/04/19/2021372.html
                http://www.cnblogs.com/yuzhongwusan/archive/2011/12/19/2293347.html