【发布时间】:2014-03-14 20:36:24
【问题描述】:
我目前在使用 Firefox 附加 SDK 开发的扩展程序时遇到问题。对于一些基本上下文,扩展使用 sdk 中的 page-mod api 执行内容脚本。在每个内容脚本上,一些额外的 javascript 被注入到页面本身(我们称它们为页面脚本)。为了完成一些复杂的任务,注入页面的 javascript 可以与内容脚本通信,然后依次向扩展的后台进程发出请求。由于扩展的复杂性,当它自动更新时,可能会进入运行相同代码的多个页面脚本在给定内容脚本上运行的状态。
我想知道的是,是否可以强制使用附加 SDK 构建的扩展仅在重新启动时自行更新。这意味着即使在用户重新启动 Firefox 浏览器之前发生自动更新,扩展也不会重新加载。
如果这是不可能的,任何其他解决方案都会很棒。
【问题讨论】:
-
好的做法是当插件执行关闭过程(它在更新之前执行,基本上:它取消旧版本并安装新版本)时,您应该删除所有注入的内容。如果插件被禁用并重新启用,这增加了好处,它不会使事情加倍等等。如果您在页面中操作了 javascript,则只有一个功能可以将其恢复。在此处查看此插件:ghForkable。在 inject.js 中,它有一个在关机时运行的函数,因此它将一切恢复到原来的样子。
标签: javascript firefox firefox-addon firefox-addon-sdk browser-extension