javascript - 如何解决此本地数据问题? (Chrome 扩展、Javascript、jQuery)

标签 javascript jquery google-chrome google-chrome-extension local-storage

我正在尝试将本地数据保存在 Chrome 扩展程序中,但它不起作用。 “getData”函数始终返回未定义。我究竟做错了什么?是的,我在 list 中的权限下确实有“存储”。

var storage = chrome.storage.local

var getData = function(key) {
    var give;
    storage.get(null, function(objects) {
        $.each(objects, function(index, value) {
            if (index == key) { 
                give = value
                console.log(value) //OUTPUT: Hello!
            }
        })
    })
    return give
}

storage.set({"test" : "Hello!"})
console.log(getData("test")) //OUTPUT: undefined

最佳答案

使用回调函数,这样:

var storage = chrome.storage.local;

var getData = function(key, callback) {
    storage.get(null, function(objects) {
        $.each(objects, function(index, value) {
            if (index == key) { 
                callback(null, value);
            }
        });
    });
};

storage.set({"test" : "Hello!"});
getData("test", function (err, data) { // err will be null
    console.log(data); // "Hello!"
});

What is a callback function?

关于javascript - 如何解决此本地数据问题? (Chrome 扩展、Javascript、jQuery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26333764/

相关文章:

javascript - 选择的默认样式

javascript - ng-change 工作不正确吗?

javascript - 使用选择框动态更新值

javascript - 使用 Fisher-Yates shuffle 推送重复数组?

javascript - Jade : escape html in mixin argument

jQuery 事件委托(delegate) + 子目标帮助

javascript - Knockout.js 选项绑定(bind)在 ViewModel 中不起作用

html - 为什么悬停在 IE11 中有效,但在 Chrome 中无效?

javascript - CSS自动填充和验证

javascript - 如何防止 Chrome 在离线时加载缓存的网页?