首先,这里有一个非常相似的问题:
如何使用JavaScript检查Web页面是否加载了Font Awesome?
我将尝试解释一下为什么我的问题不同。
我发现浏览器开始封锁网页字体,这需要备选方案。对于普通字符范围字体,这很容易:
CSS:
font-family: Lato, "Lucida Grande", Tahoma, Sans-Serif;
然而,Font Awesome 却较为困难,因为它使用了超出正常字体范围的字符,无法简单地通过一行 CSS 代码解决。
有几种可用的方法,包括使用图像或在某些情况下使用来自其他字体的字符,类似于图标,但所有这些方法都需要一种检查个别客户端浏览器中是否实际加载了 Font Awesome 的方式。
链接问题的答案说,您可以使用以下代码检查 Font 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不起作用。换句话说,所接受的答案只检查font awesome css是否存在,而不是web字体本身由于安全问题而被阻止。其他问题的OP在评论中澄清了他们为什么要问这个问题:
我的问题是浏览器阻止网络字体,并且希望标题足够清楚,可以被认为是一个独立且不同的问题。问题存在于Windows 10和IE11的组合设置中。我已经尽力简单地关闭阻止该字体的安全设置。 重复问题的解释: 这个问题根本不是推荐的问题的重复。这不是关于资源是否加载的问题。资源的加载工作正常。主机没有被阻止。Web应用程序的呈现和显示才是问题,这也在原始问题中解释了,但现在被再次提到,因为有人建议将其关闭为重复项。 编辑,进一步阅读: 我关闭阻止Web字体设置的努力在这里解释。我这么做是因为我写了一小段js代码,将会在很多不确定是否都有font-awesome的页面中加载,如果没有,我就会加载它。