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



注意 - 这个问题是基于这个问题的(虽然没有必要阅读上一个问题(:如何在不同的HTML文件中设置文本区域的值?

我有以下代码,它应该在 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';
}

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

引用错误:未定义浏览器存储

如何修复此错误?我通读了有关此方法的 MDN 文档,所以我不确定我错过了什么。

正如

注释所建议的那样,您需要声明权限。
manifest.json中添加:

"permissions": [
    "storage"
],

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

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

Mozilla 文档页面
Chrome 文档页面

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

最新更新