提问人:Foobar 提问时间:4/10/2018 更新时间:3/5/2019 访问量:4072
如何修复 TypeError: browser.storage is undefined in chrome/firefox web extension?
How to fix TypeError: browser.storage is undefined in chrome/firefox web extension?
问:
注意 - 这个问题是基于这个问题(尽管没有必要阅读上一个问题):如何在不同的HTML文件中设置textarea的值?
我有以下代码,它应该在 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 文档,所以我不确定我错过了什么。
答:
16赞
papo
3/5/2019
#1
正如评论所建议的那样,您需要声明权限。
补充:manifest.json
"permissions": [
"storage"
],
或将其添加到任何现有权限:
"permissions": [
"activeTab",
"storage"
],
Mozilla 文档页面 Chrome 文档页面
存储 API 可用于内容脚本。
不要混淆,这不是问题,因为它在评论中链接的另一个问题中可能是重复的,但事实并非如此。
评论
To use this API you need to include the "storage" permission in your manifest.json file.
- 你这样做了吗?chrome.storage.local
"unlimitedStorage"