检查Firefox中是否存在代码模块

时间:2011-06-10 15:00:42

标签: javascript firefox firefox-addon

我想在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是否可用?

1 个答案:

答案 0 :(得分:2)

一种方法是做

if (Application.extensions) {
  // code for Firefox 3.6
} else {
  // code for Firefox 4+
}

但由于Firefox 4 API是异步的并且Firefox 3 API是同步的,所以有点奇怪。