【问题标题】:Saving Javascript objects to Chrome.Storage将 Javascript 对象保存到 Chrome.Storage
【发布时间】:2016-06-04 18:46:06
【问题描述】:

此 Google Chrome 扩展程序的代码不起作用。我是 Javascript 新手,我不确定问题出在哪里。任何帮助将不胜感激。

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; 
};

感谢您的帮助。

【问题讨论】:

  • 你能详细说明什么“不起作用”吗?您是否难以将值保存到 Chrome.Storage

标签: javascript jquery google-chrome google-chrome-extension google-chrome-devtools


【解决方案1】:

为了更简单,您可以将整个用户对象存储到存储中。当你想存储你的用户数据时,代码如下:

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...
});

我认为您不需要将每个数据项存储为每个属性。我建议将其作为一个对象存储。

【讨论】:

    【解决方案2】:

    在您的代码中,您将用户名和密码存储在同一个键名中,因此您只会获得最后分配的值,

    以及您按值而不是键检索值

    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; 
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-27
      • 2015-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多