Вычислить семейство шрифтов в JavaScript

Это продолжение этого вопроса.

Я работаю над компонентом CKEditor, измененной версией раскрывающихся меню шрифтов, которые всегда отображают текущую выбранные значения размера/размера шрифта шрифта, независимо от того, где они были определены, используя computedStyle и супруги.

Как вы можете видеть в другом вопросе, определение размера шрифта теперь кросс-браузер. Теперь мне не удается работать с атрибутом fontFamily. Моя общая функция "вычисленного стиля" возвращает только полную строку шрифта, которая была определена, например.

Times New Roman, Georgia, Serif

Что мне нужно, чтобы соответствовать настройке в отношении записей в раскрывающемся списке семейств шрифтов, является фиксированное имя шрифта фактического шрифта элемента DOM я я проверяю.

Можно ли это сделать как-то, по крайней мере, для наиболее распространенных веб-шрифтов?

Ответ 1

Я не думаю, что есть какие-то методы, чтобы сделать это напрямую, но Лалит Пател придумал умную технику, которая создает элемент с некоторыми буквами в нем и угадывает шрифт из ширины элемента.

См. http://www.lalit.org/lab/javascript-css-font-detect

Ответ 2

UA выбирает первый шрифт в списке, который он находит установленным. Шрифты, установленные в ОС, на самом деле не являются частью DOM, поэтому лучше всего можно догадаться.