Проверьте, существует ли модуль кода в Firefox - PullRequest
2 голосов
/ 10 июня 2011

Я хочу получить каталог моего расширения в Firefox.

В Firefox 3 это работает так:

var file = Components.classes["@mozilla.org/extensions/manager;1"]
    .getService(Components.interfaces.nsIExtensionManager)
    .getInstallLocation("{my guid}");

В Firefox 4 вам нужно использовать новый менеджер аддонов, как это:

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 Ответ

2 голосов
/ 13 июня 2011

Один из способов сделать

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

но это немного странно, поскольку API Firefox 4 асинхронный, а API Firefox 3 синхронный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...