javascript - chrome.storage.local.get 和设置

标签 javascript google-chrome google-chrome-extension

<分区>

我正在尝试在我的扩展程序中使用 chrome.storage.local,但它似乎不起作用。我使用了 localStorage 但意识到我不能在多个页面的内容脚本中使用它。

所以,这就是我想出的:

function save()
{
    var channels = $("#channels").val();
    var keywords = $("#keywords").val();

    chrome.storage.local.set({'channels': channels});
    chrome.storage.local.set({'keywords': keywords});
}

我确实相信我正在正确执行 save(),但问题出现在 load() 中:

function load()
{
    var channels = "";
    chrome.storage.local.get('channels', function(result){
        channels = result;
        alert(result);
    });

    var keywords = "";
    chrome.storage.local.get('keywords', function(result){
        keywords = result;
        alert(result);
    });

    $("#channels").val(channels);
    $("#keywords").val(keywords);
}

当警报触发时,它会打印出 [object Object]。这是为什么?我究竟做错了什么?我查看了文档/示例,但似乎无法查明问题所在。

最佳答案

这段代码对我有用:

function load() {
    var channels = "";
    var keywords = "";
    chrome.storage.local.get('channels', function (result) {
        channels = result.channels;
        alert(result.channels);
        $("#channels").val(channels);
    });
} 

Chrome.storage.local.get()返回一个在其键值映射中包含项目的对象,因此您必须在搜索模式中使用键的索引。

import/export :

感谢 Rob 的识别:Chrome.storage.local.get()asynchronous ,您应该修改您的代码以确保它们在 callback() 成功后正常工作。

如果您需要更多信息,请告诉我。

关于javascript - chrome.storage.local.get 和设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13872542/

相关文章:

javascript - Chrome 扩展中的 Require.JS : define is not defined

javascript - 为什么这个变量会导致 “is not a function”错误?

JavaScript 代码在 Chrome 中不起作用

javascript - 没有 ng-animate 的 Angular 动画,可能吗?

java - 线程 "main"org.openqa.selenium.WebDriverException : unknown error: Chrome failed to start: exited normally 中出现异常

node.js - 在 AngularJS 中过滤具有无限滚动的页面

google-chrome-extension - Chrome扩展程序将Background.js中的消息发送到内容脚本

javascript - 有多少用户使用我的扩展程序?

javascript - 在 Javascript 中使用 string.length 时丢弃字符串中\n 的计数

javascript - 如果选中复选框并且用户单击按钮,则执行此操作