2010-01-13 50 views

回答

1

您想使用nsIExtensionManager接口。

+0

它看起来像链接现在打破了,但在[本页](https://developer.mozilla.org/en/Enhanced_Extension_Installation#Little_Things_This_Upgrade_Fixes_or_Changes)上有所描述。请记住,这与Fx 4不兼容。 – 2010-11-28 02:09:33

+0

是的,您的新答案是正确的新方法。 – sdwilsh 2010-12-01 18:55:16

+0

(而且太糟糕了,我无法删除我自己接受的答案) – sdwilsh 2010-12-01 18:55:52

3

从Firefox 4开始,可以通过AddonManager完成。

例如,为了禁用一个附加:

AddonManager.getAddonByID(id, function(addon) { 
    addon.userDisabled = true; 
}); 

要同时支持Gecko的< = 1.9.1和> 1.9.1:

var man = Components.classes["@mozilla.org/extensions/manager;1"]; 
if (man) { 
    man = man.getService(Components.interfaces.nsIExtensionManager); 
} 
if (man) { 
    man.disableItem(id); 
} else { 
    Components.utils.import("resource://gre/modules/AddonManager.jsm"); 
    AddonManager.getAddonByID(id, function(addon) { 
     addon.userDisabled = true; 
    }); 
}