这有点牵强,但如果您的 typekit 字体发出“非活动”事件,您可能可以使用 typekit 的字体事件有条件地加载 Google Web 字体。这样做的问题是,您的字体“超时”最多可能需要 5 秒,而在此过程发生时,您的用户将陷入困境。
我真的建议不要这样做,而只是使用体面的 CSS 后备。
也就是说,这个 JS 应该是一个开始(尽管它很丑):
JS
<script type="text/javascript" src="//use.typekit.net/vio0gns.js"></script>
<script type="text/javascript">
try {
var config = {
scriptTimeout: 3000 // tweak as necessary
};
Typekit.load({
loading: function() {
},
active: function() {
},
inactive: function() {
console.log('Font Timed Out');
WebFontConfig = {
google: { families: [ 'Balthazar::latin' ] }
};
(function() {
var wf = document.createElement('script');
wf.src = ('https:' == document.location.protocol ? 'https' : 'http') +
'://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js';
wf.type = 'text/javascript';
wf.async = 'true';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(wf, s);
})();
}
})
} catch(e) {}
</script>
Codepen Example (谷歌字体应该在 3-5 秒后加载)