Вземете списък с шрифтове в разширение на Firefox

В едно мое разширение за Firefox прозорецът с предпочитания очевидно се е счупил някъде след Firefox 2.0 и (част от) проблемът се крие в следния ред:

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

кои грешки с a

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

Някои проучвания показват, че fontlist всъщност е обвивка около nsIFontEnumerator (https://bugzilla.mozilla.org/show_bug.cgi?id=397813), но не мога да намеря нищо за това как да използвам nsIFontEnumerator.

Самият Stackoverflow има само един въпрос, който донякъде засяга темата, който е без отговор: Как да открием шрифта Въведете?


person Kalle    schedule 30.06.2011    source източник


Отговори (1)


Интерфейсът, който споменавате, вече не съществува в текущите версии на 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 е най-добрата справка, която можете да получите.

person Wladimir Palant    schedule 01.07.2011
comment
Фантастично, благодаря, това все още работи! Това все още ли е препоръчителният начин да го направите? В крайна сметка ще напиша това ( прозорци / mac / linux ), но имах нужда от бързо решение за момента. - person Noitidart; 17.04.2016
comment
Тъй като това е недокументирана функционалност, тя не може да бъде препоръчана - подлежи на промяна по всяко време. Този конкретен интерфейс обаче очевидно е стабилен през последните пет години. - person Wladimir Palant; 17.04.2016