我的网站有一些客户为阻止在 IE 中下载字体的组织工作,所以我需要为 FontAwesome 创建后备选项。我正在尝试使用 Web 字体加载器来检测 FontAwesome 是否正确加载,但 Web 字体加载器总是报告 FontAwesome 加载失败,即使我可以看到 FontAwesome 图标已加载。我已经测试了 IE 9/10/11。
您可以在https://vnext.radresponder.net上查看此操作。您将看到在 Firefox 和 Chrome 中,FontAwesome 已正确加载并标记为活动;但是,在 IE 中,字体加载但 Web 字体加载器触发加载失败回调并将非活动类附加到 HTML 标记。我有特殊的 CSS 来加载一些后备字符来替换随后加载的 FontAwesome 图标。
从 web 字体加载器 GitHub 页面,我没有看到任何与 IE 列出的不兼容性,所以我认为这应该可以工作。
这是我的 WebFont.load 声明。
WebFont.load({
custom: {
families: ['FontAwesome'],
urls: ['/local/address/for/fontawesome.css'],
testStrings: {
'FontAwesome': '\uf00c\uf000'
}
},
loading: function () {
console.log("loading");
},
fontloading: function (fontFamily, fontDescription) {
console.log('fontloading: ' + fontFamily);
},
fontactive: function (fontFamily, fontDescription) {
console.log('fontActive: ' + fontFamily);
},
fontinactive: function (fontFamily, fontDescription) {
console.log('fontInActive: ' + fontFamily);
},
active: function () {
console.log("active: loaded all web fonts");
},
inactive: function () {
console.log("inactive: did not load all web fonts");
}
});
编辑 - 2015/05/27 上午 9:58
我将超时从默认的 3 秒更改为 10 秒,负载肯定会占用所有 10 秒然后超时。我不确定那是什么意思。为什么它只在 IE 上超时?