JavaScript如何检测WOFF格式的支持?

3

我有一个使用Data-URIs加载字体且只想使用一种文件类型(WOFF)的情况。同时,关键是不使用备用字体,因此我正在寻找一种使用JavaScript检测是否支持WOFF的方法。是否可能检测到WOFF(而不是WOFF2)的支持?

此问题已经被提出过(检测浏览器是否支持Web Open Font Format(WOFF)的JavaScript方法),但给出的答案并未涉及检测WOFF的支持。


1
请尝试查看此帖子:https://dev59.com/RVvUa4cB1Zd3GeqPv64p - ratherblue
有趣的是,对于那个问题来说,最佳答案似乎并没有回答这个问题... - Maximillian Laumeister
@sev 我看到了,但似乎他们想要的答案实际上是font-face支持。 - James
@James,我认为新发布的答案应该适合你。 - ratherblue
1个回答

3
看起来只有IE 8、Opera Mini和Android 4.3以下的浏览器不支持WOFF字体格式:http://caniuse.com/#feat=woff 您可以通过检查addEventListener是否存在来确定IE8,通过检查operamini是否存在来确定Opera Mini。
// from https://dev59.com/OGw05IYBdhLWcg3wiyRJ#19572784
function getAndroidVersion(ua) {
    ua = (ua || navigator.userAgent).toLowerCase(); 
    var match = ua.match(/android\s([0-9\.]*)/);
    return match ? match[1] : false;
}

if ((document.all && !document.addEventListener) || 
        (!!window['operamini']) || 
        (parseFloat(getAndroidVersion() < 4.4)) {
    // IE 8, Opera Mini, Android 4.3 or lower: No WOFF support
} else {
    // Supports WOFF
}

早期版本的 Android 呢? - James
它应该检查小于4.4的任何内容。如果这不起作用,https://dev59.com/OGw05IYBdhLWcg3wiyRJ#19572784中的其他答案将涵盖不同的检测边缘情况。 - ratherblue

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接