如何修复TypeError:在chrome / firefox web扩展中未定义browser.storage?

问题描述 投票:2回答:1

注意 - 这个问题是基于这个问题(虽然没有必要阅读上一个问题):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

我该如何解决这个错误?我阅读了关于这种方法的MDN文档,所以我不确定我缺少什么。

javascript google-chrome-extension local-storage firefox-webextensions
1个回答
1
投票

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

"permissions": [
    "storage"
],

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

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

Mozilla doc page Chrome doc page

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

© www.soinside.com 2019 - 2024. All rights reserved.