javascript - 如何修复 TypeError : browser. storage is undefined in chrome/firefox web extension?

标签 javascript google-chrome-extension local-storage firefox-addon-webextensions

注意 - 这个问题是基于这个问题(虽然没有必要阅读上一个问题):How to set value of textarea in different HTML file?

我有以下代码,它应该在 firefox/chrome 的本地存储中添加一个值,然后更改扩展的 UI(代码会根据使用的浏览器略有不同,截至目前,代码用于 firefox 中的扩展):

function createSummaryBox(summary) {
    console.log("Setting textarea content to: " + summary);
    const currentSummary = {
        currentSummary: summary
    }
    browser.storage.local.set(currentSummary);
    window.location.href = '../summary_page/summary_page.html';
}

但是,每当调用此函数时,我都会收到以下错误:

ReferenceError: browser.storage is not defined

如何解决这个错误?我通读了有关此方法的 MDN 文档,所以我不确定我遗漏了什么。

最佳答案

如评论所示,您需要声明权限。
manifest.json 添加:

"permissions": [
    "storage"
],

或将其添加到任何现有权限:

"permissions": [
  "activeTab",
  "storage"
],

Mozilla doc page
Chrome doc page

存储API可用于内容脚本。
不要混淆,这不是问题,因为它在评论中链接的另一个问题中可能是重复的,但事实并非如此。

关于javascript - 如何修复 TypeError : browser. storage is undefined in chrome/firefox web extension?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49743198/

相关文章:

javascript - 无法读取未定义的属性 'prototype'; CoffeeScript 与 Require.js 的继承

javascript - 为了选择或聚焦对象,如何使右键单击行为与左键单击相同

javascript - 更改容器上的 "overflow"属性不会在运行时更改内部元素大小?

javascript - Javascript ES6 "let"如何在 for 循环迭代定义的幕后工作

javascript - 将外部 JSON 加载到 Google Chrome 扩展脚本中?

google-chrome-extension - 简单的 Chrome pageAction 扩展不起作用

javascript - 可查询的客户端存储

javascript - 如何与 Grammarly 集成

javascript - 如何将 localStorage 从 JS 发送到 PHP 文件(?)

javascript - 使用 JavaScript 更新 LocalStorage 中的对象?