0

In our extension, we are getting values of username( eg: Johnny123), accname (eg: Facebook). I want to store this for multiple accounts and usernames in the localStorage.

We have written this code :

var i = Number(localStorage.usercounter);   // counter for number of users
localStorage.username(i) = username.value; // textbox value
localStorage.accname(i) = accname.value; // textbox value

this code is not executing, what is the right way to store the values?

localStorage.username = username.value;
localStorage.accname = accname.value;

this is executing and allowing us to retrieve values. Please Help.

4

2 回答 2

0

这就是我使用 truStorage ( https://github.com/andresgallo/truStorage )读写它的方式

truStorage.setItem('a',{});//This will be the main key, the one localStorage is aware of

truStorage.setItem('a.b',[1,2,3]);//Now we can store variable 'b' inside object a

truStorage.getItem('a'); //returns entire object {a : {b: [1,2,3]}}
truStorage.getItem('a.b') //returns child object {b: [1,2,3]}

您可以按照建议的方式直接写入子项。

truStorage.setItem('a.b.c', 'value of third level nested object c');

在后台,这确实为您执行 JSON 解析/字符串化和递归,如果您使用大量 localStorage,这将大量清理您的应用程序。

于 2013-03-30T16:03:16.823 回答
0

localStorage在数据属性上存储字符串...

...您的选择是:

  1. 存储包含用户对象的数组的 JSON 表示

    var userdata = [{ name : "Bob",  account : "Facebook" },
                    { name : "Doug", account : "LinkedIn" }],
    
    userjson = JSON.stringify(userdata);
    
    localStorage.setItem("users", userjson);
    
    console.log(JSON.parse(localStorage.getItem("users")[0].name);
    
  2. 将 JSON/字符串表示存储到后缀键

    localStorage.setItem("user_0_name",    "Bob"   );
    localStorage.setItem("user_0_account", "Tumblr");
    
    localStorage.setItem("user_1_name",    "Doug"   );
    localStorage.setItem("user_1_account", "MySpace");
    
    // ...
    

如您所见,第一个选项更有意义。

于 2013-03-30T13:09:28.710 回答