Chrome.storage.local获取错误值

Chrome.storage.local get wrong value

本文关键字:取错误 获取 local storage Chrome      更新时间:2023-09-26

我试图从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();

正如文档所述,回调接收一个包含结果的对象:

回调参数应该是这样的函数:

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

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