2014-09-27 130 views
0

你好,我已经尝试寻找线程如何在localStorage中存储对象,并使注册用户使用JSON和localStorage,它正在工作(商店ID,用户名和密码),而无需重置或重叠用户。如何定位登录的localStorage密钥?

我想添加一个登录函数,但我无法循环访问数组并定位到localStorage密钥? (在这种情况下用户:号码)。

下面是代码:

var User = { 
    index: window.localStorage.getItem("User:index"), 
    $form: document.getElementById("userReg"), 


    $button_register: document.getElementById("registerUser"), 
    $button_login: document.getElementById("logIN"), 

    init: function() { 
     // initialize storage index 
     if (!User.index) { 
      window.localStorage.setItem("User:index", User.index = 1); 
     } 

     User.$form.addEventListener("submit", function(event) { 
      var entry = { 
       id: parseInt(this.id_entry.value), 
       user_name: this.user_name.value, 
       password: this.password.value 
      }; 
      if (entry.id == 0) { 
       User.storeAdd(entry); 
      } 
     }, true); 


     User.$button_login.addEventListener("click", function(event) { 

      for (i = 0; i < window.localStorage.length; i++) {} 



     }, true); 


    }, 

    storeAdd: function(entry) { 
     entry.id = User.index; 
     window.localStorage.setItem("User:index", ++User.index); 
     window.localStorage.setItem("User:" + entry.id, JSON.stringify(entry)); 
    }, 


}; 



User.init(); 

回答

0

不要依靠window.localStoragelength财产。 localStorage的行为就像一个对象,而不是像阵列

为了通过localStorage的的密钥来迭代,执行

for(var key in window.localStorage){ 
    var item = window.localStorage.getItem(key); 
    //do something with item 
}