我想在Firefox中获取我的扩展程序目录。
在Firefox 3中,它的工作原理如下:
var file = Components.classes["@mozilla.org/extensions/manager;1"]
.getService(Components.interfaces.nsIExtensionManager)
.getInstallLocation("{my guid}");
在Firefox 4中,你需要像这样使用新的Addon Manager:
Components.utils.import("resource://gre/modules/AddonManager.jsm");
AddonManager.getAddonByID("{my guid}", function(addon) {
addon.getResourceURL("file name"));
});
由于我希望我的扩展程序兼容Firefox 3.x和Firefox 4.x及更高版本,如何检查AddonManager.jsm是否可用?
答案 0 :(得分:2)
一种方法是做
if (Application.extensions) {
// code for Firefox 3.6
} else {
// code for Firefox 4+
}
但由于Firefox 4 API是异步的并且Firefox 3 API是同步的,所以有点奇怪。