Сначала вам нужно проверить, установлен ли шрифт.В Интернете я использовал несколько сценариев, которые будут проверять, установлен ли шрифт или нет.
Включите этот фрагмент кода (спасибо Лукасу Смиту):
var Font = {
isInstalled : function (name) {
name = name.replace(/['"<>]/g,'');
var body = document.body;
var test = document.createElement('div');
var installed = false;
var teststring = "mmmmmmmmwwwwwwww";
var template = '<b style="display:inline !important; width:auto !important; font:normal 10px/1 \'X\',sans-serif !important">' + teststring + '</b><b style="display:inline !important; width:auto !important; font:normal 10px/1 \'X\',monospace !important">' + teststring + '</b>';
var ab;
if (name) {
test.innerHTML = template.replace(/X/g, name);
test.style.cssText = 'position: absolute; visibility: hidden; display: block !important';
body.insertBefore(test, body.firstChild);
ab = test.getElementsByTagName('b');
installed = ab[0].offsetWidth === ab[1].offsetWidth;
body.removeChild(test);
}
return installed;
}
}
Кроме того,используйте следующий фрагмент (я сам написал), чтобы получить значение font-family
и разбить его на части.Каждая часть является шрифтом, так как они разделены запятой в коде CSS (например, font-family: "Nimbus", "Courier New";
):
function workingFont(element) {
var fontString = $(element).css('font-family');
var fonts = fontString.split(",");
for (var f in fonts) {
if (Font.isInstalled(fonts[f])) {
return fonts[f];
}
}
}
Как видите, будет возвращен первый установленный шрифт.
Используйте workingFont(element)
, где element - идентификатор элемента, класс или тэг.Это часть jQuery API . Обратите внимание, что для работы вышеупомянутого скрипта должен быть включен jQuery.
Обновление: я создал этот jsfiddle для его проверки.