Firefox加载项删除未清除本地存储

Firefox加载项删除未清除本地存储,firefox,firefox-addon,firefox-addon-sdk,Firefox,Firefox Addon,Firefox Addon Sdk,在chrome中,当您安装扩展时,它会清除与该扩展关联的本地存储。Firefox似乎并非如此 我能找到的唯一可能的解决办法是 侦听“安装”事件并手动清除它 我遇到的问题是,在main.js获取此事件时,我的页面工作程序已经卸载。我需要清除main.js无法清除的本地存储。因此,我需要向页面工作程序发出消息,以便它可以这样做,但此时页面工作程序已经卸载。Firefox附加SDK没有与HTML5本地存储集成。所以,一个解决方案是使用消息传递,然后应该按照预期为您擦除它 如果不是,在main.js中

在chrome中,当您安装扩展时,它会清除与该扩展关联的本地存储。Firefox似乎并非如此

我能找到的唯一可能的解决办法是

侦听“安装”事件并手动清除它


我遇到的问题是,在main.js获取此事件时,我的页面工作程序已经卸载。我需要清除main.js无法清除的本地存储。因此,我需要向页面工作程序发出消息,以便它可以这样做,但此时页面工作程序已经卸载。

Firefox附加SDK没有与HTML5本地存储集成。所以,一个解决方案是使用消息传递,然后应该按照预期为您擦除它

如果不是,在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

这很有趣。你有问题吗?这是最好的解决方案吗?有没有一种方法可以让它像Chrome一样在卸载时清除存储,而不必截取卸载事件并手动执行。没错,firefox会保留它,以防用户重新安装扩展。对于我的附加组件,当用户卸载它时,我会删除它的所有痕迹。因为这就是我希望软件卸载能为我工作的方式。因此,只需删除卸载插件时的所有内容:)谢谢,我编辑了这个问题以包含我的主要问题,现在我知道如何拦截卸载:我遇到的问题是,在main.js获得此事件时,我的页面工作人员已经卸载。我需要清除main.js无法清除的本地存储。因此,我需要向页面工作程序发出消息,以便它可以执行此操作,但页面工作程序此时已被卸载。@yoyo在
页面工作程序上没有一个
onDetach
或某种事件,因此您可以删除该事件上的本地存储?可能您的意思是
需要(“sdk/简单存储”).storage这里。不管怎样,它不起作用。