Firefox插件删除不清除本地存储

时间:2014-12-22 19:24:30

标签: firefox firefox-addon firefox-addon-sdk

在安装扩展程序时,在Chrome中清除与该扩展程序关联的本地存储。这似乎不是Firefox的情况。

我能找到的唯一可行解决方案是

https://developer.mozilla.org/en-US/Add-ons/SDK/Tutorials/Listening_for_load_and_unload

收听'install'事件并手动清除。

我遇到的问题是,当main.js收到此事件时,我的页面工作者已经卸载了。我需要清除main.js不能的本地存储。所以我需要发送给页面工作者,这样它就可以这样做了,但是页面工作者此时已经被卸载了。

1 个答案:

答案 0 :(得分:2)

Firefox附加SDK不与HTML5本地存储集成。因此,一种解决方案是使用消息传递和simple storage代替,然后应该按预期将其擦除。

如果不是,在main.js中,你可以简单地写:

const { storage } = require('sdk/simple-storage');
exports.main = function({ loadReason }) {
  if (loadReason==='install') for (var prop in storage) delete storage[prop];
}

如果您需要使用localStorage,请将一组受影响的页面存储在简单存储中,然后在安装时为每个站点创建一个页面工作者,并从每个新内容脚本中清除localStorage