在安装扩展程序时,在Chrome中清除与该扩展程序关联的本地存储。这似乎不是Firefox的情况。
我能找到的唯一可行解决方案是
https://developer.mozilla.org/en-US/Add-ons/SDK/Tutorials/Listening_for_load_and_unload
收听'install'事件并手动清除。
我遇到的问题是,当main.js收到此事件时,我的页面工作者已经卸载了。我需要清除main.js不能的本地存储。所以我需要发送给页面工作者,这样它就可以这样做了,但是页面工作者此时已经被卸载了。
答案 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
。