注意 - 这个问题是基于这个问题的(虽然没有必要阅读上一个问题(:如何在不同的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 可用于内容脚本。
不要混淆,这不是问题,因为它在评论中链接的另一个问题中可能重复,但事实并非如此。