2010-01-13 25 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; 
    }); 
}