0

この拡張機能では、ユーザー名 (例: Johnny123)、accname (例: Facebook) の値を取得しています。これを複数のアカウントとユーザー名用に localStorage に保存したいと考えています。

このコードを書きました:

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

このコードは実行されていません。値を格納する正しい方法は何ですか?

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

これは実行中であり、値を取得できます。助けてください。

4

2 に答える 2

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 に答える
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 に答える