首页 > 解决方案 > 交换css字体时是否会发出js事件?

问题描述

我可以判断字体何时已成功(或以其他方式)加载,然后使用 JS 执行此操作吗?

语境

我正在使用剧作家打印一系列文件。我目前正在加载这些字体https://fonts.googleapis.com/css2?family=Raleway:wght@100;300;600&display=swap,有时waitUntil="networkidle"会在字体加载之前完成 ½ 秒的等待,导致文档以备用字体打印。

参考

我读过这个:Controlling Font Performance with font-display这个:Navigating & waiting,并进行了大量搜索,但无济于事。

可能的解决方法

有没有简单的方法?

标签: javascriptcssgoogle-chromefontsplaywright

解决方案


是的,你可以使用 Font Face Observer 来做到这一点,它是一个小的 @font-face 来监控字体的负载。这并不限制您使用任何类型的字体加载。

例如

var font = new FontFaceObserver('My Family', {
  weight: 400
});

font.load().then(function () {
  console.log('Font is available');
}, function () {
  console.log('Font is not available');
});

如果您想了解更多信息,请查看https://portalzine.de/dev/options-to-detect-when-a-font-face-has-been-loaded/

希望能回答你的问题。


推荐阅读