Chrome.storage.local获取错误的值

时间:2014-10-06 09:06:40

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

我试图从chrome.storage.local加载内容但它不起作用(它总是返回相同的结果,[object OBJECT])。 这是我的代码:

    function load()
{
    var loginC = "";
    chrome.storage.local.get('loginC', function(result){
    loginC = result;
        if (loginC != "") {
            document.getElementById("login").value = loginC;
        }
    });

    var passC = "";
    chrome.storage.local.get('passC', function(result){
    passC = result;
        if (passC != "") {
            document.getElementById("pass").value = passC;
        }
    });
}

load();

2 个答案:

答案 0 :(得分:1)

documentation状态时,回调接收包含结果的对象:

  

callback参数应该是一个如下所示的函数:

     

function(object items) {...};

     

object items

     

在键值映射中包含项目的对象。

以这种方式完成,因为一个get操作可以检索多个值。

一般来说,代码应如下所示:

chrome.storage.local.get('keyName', function(result) {
  /* use result.keyName */
});

您的代码可以简化为:

chrome.storage.local.get(['loginC', 'passC'], function(result) {
    if (result.loginC) { // Will catch both "" and undefined
        document.getElementById("login").value = result.loginC;
    }
    if (result.passC) {
        document.getElementById("pass").value = result.passC;
    }
});

答案 1 :(得分:1)

get方法返回{loginC: /*..*/ }变量格式为result的对象。使用result.loginCresult.passC获取值。