在我的Firefox扩展中,“偏好设置”窗口显然在Firefox 2.0之后坏了,并且(部分)问题在于以下几行:

var fontList  = Components.classes["@mozilla.org/gfx/fontlist;1"].
    createInstance(Components.interfaces.nsIFontList);


哪个错误

Error: Components.classes['@mozilla.org/gfx/fontlist;1'] is undefined


一些挖掘表明,fontlist实际上是nsIFontEnumerator(https://bugzilla.mozilla.org/show_bug.cgi?id=397813)的包装,但我找不到有关如何使用nsIFontEnumerator的任何信息。

Stackoverflow本身只有一个问题,即对该主题有何触动,尚无答案:How to discover Font Type?

最佳答案

您引用的界面在当前的Firefox版本中不再存在。但是,存在的是nsIFontEnumerator

var enumerator = Components.classes["@mozilla.org/gfx/fontenumerator;1"]
                           .getService(Components.interfaces.nsIFontEnumerator);
var fonts = enumerator.EnumerateAllFonts({});


它似乎没有记录在MDC上,因此http://www.oxymoronical.com/experiments/apidocs/interface/nsIFontEnumerator是您可以获得的最佳参考。

10-02 13:04