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

时间:2018-04-09 23:39:26

标签: javascript google-chrome-extension local-storage firefox-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

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

1 个答案:

答案 0 :(得分:0)

如评论所建议,您需要声明许可。
manifest.json中添加:

"permissions": [
    "storage"
],

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

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

Mozilla doc page
Chrome doc page

存储API可以在内容脚本中使用。
请不要感到困惑,这不是问题,因为在另一个问题中,它可能链接在注释中,而不必重复。