Прежде всего, здесь очень похожий вопрос:
Как проверить, загружен ли Font Awesome на веб-страницу с помощью javascript?
Я попытаюсь объяснить, почемуу меня другой вопрос.
Я обнаружил, что браузеры начали блокировать веб-шрифты в целом, и это требует альтернативных решений.С обычными шрифтами с диапазоном символов это легко сделать:
CSS:
font-family: Lato, "Lucida Grande", Tahoma, Sans-Serif;
Шрифт потрясающий, но сложнее, так как он использует символы вне нормального диапазона шрифтов и не может иметь простойрешение css в одну строку.
Доступно несколько вариантов, в том числе использование изображений или, в некоторых случаях, символов других шрифтов, аналогично значку, но для всех подходов необходим способ проверить, работает ли шрифт awesome на самом деле илинет, в браузере отдельного клиента.
В ответе на связанный вопрос сказано, что вы можете проверить, загружен ли шрифт awesome, с помощью этого кода:
function css(element, property) {
return window.getComputedStyle(element, null).getPropertyValue(property);
}
window.onload = function () {
var span = document.createElement('span');
span.className = 'fa';
span.style.display = 'none';
document.body.insertBefore(span, document.body.firstChild);
if ((css(span, 'font-family')) !== 'FontAwesome') {
// add a local fallback
}
document.body.removeChild(span);
};
Однако мой локальный запасной вариантникогда не выполняется, поскольку css(span, 'font-family')
фактически возвращает FontAwesome.Я полагаю, что это потому, что файл CSS импортируется без проблем , а CSS говорит, что семейство шрифтов должно быть FontAwesome.Факт остается фактом, что FontAwesome не работает.Другими словами, принятый ответ просто проверяет, существует ли шрифт «удивительный», а не блокируется ли сам веб-шрифт из-за соображений безопасности.
ОП другого вопроса в комментариях поясняет, почему они задали вопрос:
Я делаю это, потому что я пишу фрагмент js, который будет загружен на многих страницах, и я не уверен, что у всех будет шрифт потрясающий, если они неЯ собираюсь загрузить его.
Моя проблема заключается в том, что браузеры блокируют веб-шрифты, и я надеюсь, что заголовок достаточно ясен, чтобы считать его отдельным вопросом.Проблема существует в комбинированной настройке Windows 10 и IE11.Я исчерпал свои возможности, чтобы просто отключить настройки безопасности, блокирующие шрифт.
Двойное объяснение вопроса:
Вопрос совсем не является дубликатом предложенный вопрос .Это не о том, загружен ресурс или нет.Загрузка ресурсов работает просто отлично.Хозяева не заблокированы.Рендеринг и отображение веб-приложений - это проблема, которая также объясняется в исходном вопросе, но упоминается снова, поскольку кто-то предложил закрыть ее как дубликат.
РЕДАКТИРОВАТЬ, ДАЛЬНЕЙШЕЕ ЧТЕНИЕ:
Мои попытки отключить настройки, блокирующие веб-шрифты, описаны здесь