javascript - 将 `localStorage` 用于 Firefox Add-on SDK 扩展时如何将数据持久存储在 `jpm run`

标签 javascript firefox-addon firefox-addon-sdk firefox-developer-tools

我正在开发 Firefox 扩展,我需要将日期存储在 localStorage 中作为登录属性。

我使用了简单存储,但简单存储在重启后丢失了数据。

所以,请告诉我如何在 localStorage 中存储数据。

最佳答案

您可能正在使用 jpm run测试您的附加组件。 jpm run 每次执行时都会使用一个新的临时配置文件。如果您希望任何数据从一次执行持续到另一次执行,您将需要使用 -p--profile= 选项来指定用于该运行的配置文件。参见 Using profiles在 MDN 上。您可以指定配置文件名称或配置文件的路径。仅使用 jpm run 缺乏持久性将成为放置在配置文件或配置文件目录中的任何存储的问题,无论是 simple-prefs 的偏好, 数据使用 simple-storage ,一个使用 io/file 的文件,一个使用 SQLite database 的数据库,或任何其他方法。这在多个页面上都有明确说明,包括 simple-storage页面。

示例(来自 MDN):

jpm run --profile boogaloo
jpm run --profile path/to/boogaloo

如果您想创建一个新的配置文件用于测试,您可以使用 profile manager .您可以通过使用 -p-P-ProfileManager 中的任何选项启动 Firefox 来启动配置文件管理器。通常,您需要退出任何当前正在运行的 Firefox 实例才能启动新版本的 Firefox。但是,也可以使用 -no-remote 选项在使用不同配置文件打开 Firefox 的同时启动新实例。例如,在 64 位 Windows 上,要启动 Firefox 配置文件管理器,我通常使用:

"C:\Program Files (x86)\Mozilla Firefox\firefox.exe" -no-remote -ProfileManager

如果你真的想使用本地存储,你应该将数据存储在配置文件目录中,所以你仍然需要执行上述步骤才能使用指定的配置文件。你会想看看io/file , 并且需要 open()文件,然后使用 text-streams 读取或写入它或 byte-streams .下一个合乎逻辑的问题是它应该存储在哪里,但这是另一个问题:Where to save files from Firefox add-on?

关于javascript - 将 `localStorage` 用于 Firefox Add-on SDK 扩展时如何将数据持久存储在 `jpm run`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35579084/

相关文章:

javascript - 如何在实时网页中用 mailto 链接替换电子邮件地址?

javascript - Firefox JavaScript chrome 代码中的弱引用

javascript - Firefox 29、XPCOM 和 wrappedJSObject

javascript - 检查是否选中了带有多个复选框的 html 表上的特定复选框。 JS/JQuery

javascript - 有没有办法在 Nightwatch 中使用 If 语句来控制测试

css - 可视化实时 CSS 特异性计算器?

javascript - 使用 Firefox Add-on Sdk 中的类和命名空间

javascript - 在 React Native 中正确显示我的 Logo

javascript - Javascript 回调的范围问题

javascript - 获取选项卡的消息管理器? (Firefox 附加 SDK)