You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

storage.sync.get()仅在Firefox中返回undefined的兼容问题

解决Firefox中chrome.storage.sync.get()返回undefined的问题

问题根源

Firefox的WebExtensions API实现和Chrome存在差异:当调用chrome.storage.sync.get()且不指定任何键名时,若存储中无有效数据,Firefox会返回undefined,而Chrome会返回空对象{}。即使你之前设置过存储数据,也可能因Firefox同步异常、数据未正确持久化等原因触发这个差异。

修复方案

1. 显式传入空对象作为参数

这是最直接的对齐方式,强制让Firefox返回空对象,和Chrome行为保持一致:

chrome.storage.sync.get({}, res => {
  console.log(res); // 此时Firefox和Chrome都会输出{}
});

2. 在回调中兜底处理undefined

如果不想修改get()的调用参数,可以在回调里手动处理undefined的情况:

chrome.storage.sync.get(res => {
  const finalRes = res || {};
  console.log(finalRes); // 统一输出空对象
});

额外检查项

  • 确认manifest.json中已正确声明storage权限:
    {
      "permissions": ["storage"]
    }
    
  • 检查Firefox的同步状态:进入Firefox设置→同步,确保扩展数据同步功能已开启,避免因同步问题导致存储数据未正常加载。

内容的提问来源于stack exchange,提问作者imtorl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 16:20:57