簡體   English   中英

將Javascript對象保存到Chrome.Storage

[英]Saving Javascript objects to Chrome.Storage

Google Chrome擴展程序的此代碼無效。 我是Java語言的新手,不確定是什么問題。 任何幫助將不勝感激。

JS / jQuery

var userV = serviceName + 'Username'; 
var passV = serviceName + 'Password'; 

boolean works = true; 

var User = {
  passV: password, 
  userV: username, 
  works = true; 
}

chrome.storage.sync.set({User : userV}, function() {
  console.log('');
});
chrome.storage.sync.set({User : passV }, function() {
  console.log('');
});

腳本

chrome.storage.sync.get("userV", function (User) {  
    sUsername = User.userV; 
};

chrome.storage.sync.get("passV", function (User) {  
    sPassword = User.passV; 
};

感謝您的任何幫助。

在您的代碼中,您將用戶名和密碼存儲在相同的鍵名中,因此您只會獲得最后分配的值,

以及您按值而不是按鍵檢索值

JS / jQuery

var userV = serviceName + 'Username'; 
    var passV = serviceName + 'Password'; 

    boolean works = true; 

    var User = {
      passV: password, 
      userV: username, 
      works = true; 
    }

    chrome.storage.sync.set({User : userV}, function() {
      console.log('');
    });
    chrome.storage.sync.set({Pass : passV }, function() {
      console.log('');
    });

腳本

chrome.storage.sync.get("User", function (data) {  
    sUsername = data.User; 
};

chrome.storage.sync.get("Pass", function (data) {  
    sPassword = data.Pass; 
};

為了更加簡化,您可以將整個User對象存儲到存儲中。 當您要存儲用戶數據時,代碼如下所示:

var userV = serviceName + 'Username'; 
var passV = serviceName + 'Password'; 

boolean worksV = true; 

var user = {
  password: passV, 
  username: userV, 
  works: worksV 
};

chrome.storage.sync.set({"user" : user}, function() {
  // Do something...
});

然后,當您要檢索存儲的數據時,代碼為:

chrome.storage.sync.get("user", function(data) {
  var user = data.user;
  var passV = user.password;
  var userV = user.username;
  var worksV = user.works;
  // Do something...
});

我認為您不需要將每個數據項都存儲為每個屬性。 我建議將其存儲為一個對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM