获取Firefox扩展中的字体列表

时间:2011-06-30 14:17:21

标签: javascript fonts firefox-addon xpcom

在我的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?

1 个答案:

答案 0 :(得分:4)

您所引用的界面在当前的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是您可以获得的最佳参考。