Получить вычисленное семейство шрифтов в JavaScript - PullRequest
11 голосов
/ 25 декабря 2009

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

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

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

Times New Roman, Georgia, Serif

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

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

Ответы [ 2 ]

9 голосов
/ 25 декабря 2009

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

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

2 голосов
/ 25 декабря 2009

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

...