我的网站有一些客户适用于阻止IE中字体下载的组织,所以我需要为FontAwesome创建后备选项。我试图使用Web字体加载器来检测FontAwesome是否正确加载,但Web字体加载器总是报告FontAwesome无法加载,即使我可以看到FontAwesome图标已加载。我测试了IE 9/10/11。
您可以在https://vnext.radresponder.net查看此操作。您将看到在Firefox和Chrome中,FontAwesome已正确加载并标记为活动状态;但是,在IE中加载字体,但随后Web字体加载器触发加载回调失败并将非活动类附加到HTML标记。我有一些特殊的CSS来加载一些后备字符来替换随后加载的FontAwesome图标。
从网页字体加载器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上超时?