如果不重新启动 Firefox,我无法在 Firefox 扩展中反映源代码修改。我相信这在使用引导方法时应该是可能的。
这是源代码:
bootstrap.js
var GOOGBAR_MODULES = [ "resource://googbar/loader.js"];
function startup(params, reason)
{
var res = Services.io.getProtocolHandler("resource").QueryInterface(Ci.nsIResProtocolHandler);
var modulesURI = Services.io.newURI(__SCRIPT_URI_SPEC__ + "/../content/", null, null);
res.setSubstitution("googbar", modulesURI);
Cu.import("resource://googbar/loader.js");
}
function shutdown(params, reason)
{
// Unload all modules added with Cu.import
GOOGBAR_MODULES.forEach(Cu.unload, Cu);
// Clear our resource registration
var res = Services.io.getProtocolHandler("resource").QueryInterface(Ci.nsIResProtocolHandler);
res.setSubstitution("googbar", null);
}
加载器.js
console.log("googbar loader loaded");
当我在加载程序中更改消息时,它不会反映在 Firefox(版本 30)中。我在配置文件扩展文件夹中有一个文件“goog@myself.com”,其中包含我的开发文件夹的路径。当我从 about:extensions 页面启用/禁用或删除/撤消时,我对 loader.js 所做的更改不会反映出来,除非我重新启动 firefox。任何关于为什么代码没有动态加载的指针都会有所帮助。
我对使用 SDK 进行开发不感兴趣。我还设置了各种标志,如https://developer.mozilla.org/en-US/Add-ons/Setting_up_extension_development_environment中所述
编辑1:
这是我用来测试场景的打包为 xpi(1.35KB) 的上述代码的链接。https://www.dropbox.com/s/0io8b081ybu632q/test.xpi
编辑2:
我的目标是加快开发过程,而不必为每次代码更改重新启动浏览器。这是一个相关的帖子,但似乎是一个过时的帖子。