chrome.storage 设置\获取说明

2023-11-23

我想在我的扩展中保存信息。我用Chrome.storage.sync这样做,但是当我保存后立即阅读时,我无法正确检索该值。大概是做了什么蠢事吧…… 我尝试清除本地存储chrome.storage.sync.clear但这没有帮助。

我的保存功能是(看看如何现在做到了):

save: function (type, key, data) {
    Storage.storageOption(type).set({key:data}, function () {
        console.log("saved data");
    });

load: function (type, key) {
    Storage.storageOption(type).get(key, function (object) {
        console.log("read : " +object);
        return object[key];
    })}

并将其称为:

Storage.save("", 'path',username);
console.log(Storage.load("",'path'));

结果是这样的:

保存的数据

不明确的

读:[对象对象]


Update:

好吧,显然我传递对象的键值对的方式存在问题,因为当我这样调用它时:chrome.storage.sync.set({'path':username}, function(){});

在控制台中打印存储会产生更好的输出:

不明确的

shai

仍然不确定这个未定义是什么......


更新2:

成功写入存储后,尝试在文档准备就绪时读取它。 使用以下代码:

var dbdata = chrome.storage.sync.get("path",function(object){
    return object['path'];
});

然而,函数的主体并没有被执行,尽管文档说它在任何情况下都会运行,并且在出现错误时会设置lastError。

有什么建议么?


您传递给 chrome.storage.sync 的函数的返回值不符合您的预期。该值仅在回调中可用。它并没有结束于dbdata.

此外:

chrome.storage.sync是一个异步API。

您必须等待它完成才能检索数据。

chrome.storage.sync.set({'value': 12}, function() {
    chrome.storage.sync.get("value", function(data) {
      console.log("data", data);
    });
  });

输出是:

data Object {value: 12} 

manifest.json 必须包含:

“权限”:[ “贮存” ],

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

chrome.storage 设置\获取说明 的相关文章

  • OpenAI Gymnasium,有没有算法支持的库?

    OpenAI 发布了一个名为 Gymnasium 的新库 它应该取代 Gym 库 有许多库都实现了支持健身房环境的强化学习算法 但是 Gymnasium 的界面略有变化 有没有支持 Gymnasium 的算法库 我尝试了 CleanRL K
  • 将 cron 作业配置为在 Jenkins 上每 15 分钟运行一次

    如何在 Jenkins 上每 15 分钟运行一次 cron 作业 这是我尝试过的 在 Jenkins 上 我使用以下 cron 语法设置了每 15 分钟运行一次的作业 14 但该作业每小时执行一次 而不是 15 分钟 我收到有关 cron
  • 为什么没有参数的函数(与实际函数定义相比)可以编译?

    我刚刚看到某人的 C 代码 我很困惑为什么要编译它 有两点我不明白 The 函数原型与实际函数定义相比没有参数 中的参数函数定义没有类型 include
  • Thymeleaf Spring 安全集成 sec:授权不起作用

    我正在使用带有 Spring security 的 Thymeleaf 模板引擎 我还使用 Thymeleaf Spring Security 集成模块来使用 sec authorize 功能 但由于某种原因它不起作用 我没有收到任何错误
  • 用于高级搜索/过滤的.Net Web API URL 约定

    我对 Microsoft 的 REST 和 WebAPI 比较陌生 我们正在实现一个中心 REST 服务 它将容纳多种类型的对象获取和设置 作为该项目的领导者 我的任务是提出我们正在使用的正确的 Uri 设计 我想知道关于战争什么想法更好
  • 你遇到过哪些 git 陷阱?

    我遇到的最糟糕的情况是 git 子模块 我在 github 上有一个项目的子模块 该项目无人维护 我想提交补丁 但无法提交 所以我分叉了 现在子模块指向原始库 而我需要它指向 fork 因此 我删除了旧的子模块 并将其替换为同一提交中新项目
  • 将文件附加到 PHPMailer

    我目前正在开发一个项目 该项目将文件作为 blob 存储在数据库中 我需要将文件附加到电子邮件并通过 PHPMailer 发送出去 我熟悉 mail gt addAttachment 但是 这个函数似乎只接受文件路径 而我没有 我想知道是否
  • Gitflow错误无法初始化

    我已经将 gitflow 安装在我的 github 项目所在的目录中 但是 当我尝试使用命令 启动时git flow init 我收到以下错误消息 git flow init C cygwin64 usr local bin gitflow
  • 使用Python的timeit获取“全局名称'foo'未定义”

    我想知道执行一条Python语句需要多少时间 所以我上网查了一下 发现标准库提供了一个名为timeit http docs python org library timeit html旨在做到这一点 import timeit def fo
  • 从哪里开始阅读 SQLite 源代码? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想了解sqlite是如何实现的 并且 想阅读源代码 我已经下载了源代码 我应该开始查看代码的哪一部分 SQLite文档页 http
  • 重构后如何保留 terraform 资源以使用 for_each?

    目前我正在对我们的基础设施进行小型重构 我的项目的当前版本类似于以下内容 我正在尝试使用 for each 来重用变量 resource google cloud scheduler job job name Create All Doss
  • File_get_contents($url): 无法打开流

    我有一个脚本 我使用以下方法读取文件 file get contents urlencode url 我收到此错误 failed to open stream HTTP request failed HTTP 1 0 400 Bad req
  • 如何使用 winrar 提取与 zip 文件同名的文件夹中的所有 zip 文件?

    我需要迭代一个文件夹 对于每个 zip 文件 我需要使用它的名称来提取它 也就是说 如果它是 test zip 那么它应该解压到 test 文件夹 同样 它应该迭代我的文件夹及其子文件夹并提取内容 我编写了下面的代码 但它没有使用 zip
  • 获取css规则、chrome扩展

    我正在开发 Chrome 扩展程序 它需要访问document styleSheets cssRules 它在某些网站上运行良好 例如w3school 但其他人则不然 比如堆栈溢出 我收到错误 Failed to read the cssR
  • 安装 RVM 时出现问题

    我已按照 rvm 网站上的说明执行了命令 但似乎不起作用 从 git 存储库获取代码运行顺利 但是当我尝试使用时 rvm notes Error usr local bin rvm line 73 home cody rvm scripts
  • 获取长度为 n 的所有(n-选择-k)组合

    我怎样才能获得长度的所有组合 按顺序 n从数字列表中 例如 给定列表 1 2 3 4 并设置n 3 我怎样才能得到这些结果 1 2 3 1 2 4 1 3 4 2 3 4 For combinations of all possible l
  • AddressAccessDeniedException :无需 netsh 即可解决它?

    我遇到了异常AddressAccessDeniedException因为我的processus没有注册URL的权限 我首先以管理员身份运行我的程序 好的 它成功了 但我现在想要分发我的应用程序 并且我希望每个用户都能够运行它 而不必成为管理
  • 如何在 iOS 11 上的 Swift 中获取 FLAC 文件元数据?

    我需要获取 FLAC 文件的元数据 我尝试了以下代码 let item AVPlayerItem url URL fileURLWithPath path let commonMetadata item asset commonMetada
  • 将笔记本生成的 HTML 片段转换为 LaTeX 和 PDF

    在我的笔记本里有时会有 from IPython display import display HTML display HTML h3 The s is important h3 question of the day 但当我后来将笔记本
  • 如何更改 UILabel/UIFont 的字母间距?

    我已经搜索了很多 但找不到答案 我有一个普通的 UILabel 定义如下 UILabel totalColors UILabel alloc initWithFrame CGRectMake 5 7 120 69 autorelease t

随机推荐

  • 制作实时时钟 javascript

    有谁知道如何让实时 JavaScript 时间运行 我有这个 php 代码 expiredate date d m Y G i s rdate1 f ex date explode expiredate f ex time explode
  • Common Lisp 中 eq、eql、equal 和 equalp 之间有什么区别?

    有什么区别eq eql equal and equalp 在 Common Lisp 中 我知道其中一些检查类型 一些检查跨类型等等 但哪个是哪个 什么时候使用其中一种比其他更好 From Common Lisp 等式谓词 eq x y 为
  • 在 emacs 中,cl-flet 和 cl-letf 有什么区别?

    据我了解 两者都是用来临时改变函数的值 超越事实cl flet是一个函数并且cl letf是宏 什么时候使用它们 绑定可以是递归的 如果函数定义用名字称呼自己 哪个函数会被调用 比较cl flet vs cl labels行为 范围是词汇上
  • HTML5 格式的 YouTube 视频

    如何播放 HTML5 格式的 YouTube 视频 这可能就是您正在寻找的 强制 HTML5 YouTube 视频 如果用户选择加入 则可以播放 HTML5 视频 HTML5 默认视频 请注意 html5 1
  • 确保所有 TThread.Queue 方法在线程自毁之前完成

    我发现如果一个方法排队TThread Queue调用一个方法 该方法调用TApplication WndProc e g ShowMessage 然后允许在原始方法完成之前运行后续排队的方法 更糟糕的是 它们似乎不是按 FIFO 顺序调用的
  • Ruby Net::FTP 超时线程

    我试图通过使用线程 FTP 连接来加速多个 FTP 下载 我的问题是我总是有线程挂起 我正在寻找一种干净的方法来告诉 FTP 它需要重试 ftp 事务 或者至少知道 FTP 连接何时挂起 在下面的代码中 我对 5 6 个单独的 FTP 连接
  • 有没有办法检查脚本是否在 dart vm 或 dart2js 中运行?

    有没有办法检查脚本是否在 dart vm 或 dart2js 中运行 也许使用镜像API 没有official据我所知 其目的是 出于所有实际目的 您不必知道您是在本机运行还是编译为 JavaScript 也就是说 您可以使用的技巧很少 最
  • 如何从 PHP 字符串中提取标题标签?

    如何从包含大量 HTML 的字符串中提取所有文本 h1 h2 etc标签到一个新变量 我想捕获这些元素中的所有文本并将它们作为逗号分隔值存储在新变量中 是否可以使用preg match all 首先 您需要使用 tidy 清理 HTML 示
  • gitlab 没有遥控器/原点/HEAD

    我对 git 还很陌生 但我一直在我设置的远程服务器上使用它 并且我很确定我了解基础知识 我刚刚设置了 gitlab 并将我的一些代码推送到了它的一个新项目中 我所做的是 获取目录中的所有代码 git init git 添加 git com
  • 如何使用SignalR向特定用户发送数据?

    我有一个通过 SignalR 接收消息的客户端 它工作得很好 但更像是广播 我希望能够向特定客户发送消息 在客户端 我有一个 userId 并且像这样设置连接 const userId getUserId if userId const b
  • 什么是自然语言处理中的分块器?

    有谁知道文本处理上下文中的分块器是什么以及它的用途是什么 根据这些幻灯片 分块是解析的一种替代方法 它提供了句子的部分句法结构 具有有限的树深度 而不是完整的解析 它比完整解析受到更多限制 但在提取或忽略信息时就足够了 因此被多次使用 因为
  • 通过车把部分传递变量

    我目前正在express js 应用程序中处理handlebars js 为了保持模块化 我将所有模板拆分为部分模板 我的问题 我找不到通过部分调用传递变量的方法 假设我有一个看起来像这样的部分 div h1 Headline h1 p L
  • 为什么 SwitchPreference 在从打开切换到关闭时不显示动画,反之亦然?

    我做了一个SwitchPreference对于我的应用程序preferences 问题是SwitchPreference当我在打开和关闭之间切换时 它没有显示动画 而是突然猛烈地切换 Here s preferences xml文件的代码
  • 有关 Android 的 Movie 类的信息

    我正在尝试展示一个 gif 动画 顺便说一句 我正在与班级一起做Movie 但 Android 开发者页面不授予有关这些方法的信息 如何调整 gif 的大小以适应布局 提前致谢 我一直在尝试使用做同样的事情 显示动画 GIF this me
  • NumPy有相当于Matlab缓冲区的功能吗?

    我看到有一个array split and split methods但是 当您必须分割长度不是块大小整数倍的数组时 这些并不是很方便 此外 这些方法的输入是切片数量而不是切片大小 我需要一些更像 Matlab 的东西buffer更适合信号
  • mysql中的数组变量

    MySQL 脚本中有没有办法声明一个数组 或任何集合 并循环它来执行操作 例如 SET myArrayOfValue 2 5 2 23 6 for each value in myArrayOfValue INSERT INTO EXEMP
  • 如何在谷歌地图v2的默认标记中绘制文本

    我想在 Google 地图 v2 的默认标记中绘制文本 我通过从可绘制图像中获取自己的图像来完成此操作 但如何在默认标记中更改它 我的代码是 marker icon BitmapDescriptorFactory fromBitmap dr
  • Excel 过滤功能 - 选择某些列作为输出

    我想对多个列应用过滤器函数 范围从A G并且只有列B D在输出中 我该怎么做 例如 FILTER A 1 G 7 K 1 K 7 K 1 结果是匹配条件的行的溢出数组 但输出仍然有 7 列 A G 我可以选择只输出Column吗B D TL
  • ImageMagick.NET 异常

    我得到了FileNotFoundException当尝试使用 ImageMagick NET 时 取自源代码中的 bin 文件夹 http imagemagick codeplex com releases view 30302 我得到的确
  • chrome.storage 设置\获取说明

    我想在我的扩展中保存信息 我用Chrome storage sync这样做 但是当我保存后立即阅读时 我无法正确检索该值 大概是做了什么蠢事吧 我尝试清除本地存储chrome storage sync clear但这没有帮助 我的保存功能是