FontFace: load() 方法

load()FontFace 接口的方法,用于请求并加载其 source 属性指定为 URL 的字体。它返回一个 Promise,该 Promise 在加载字体时解析为当前的 FontFace 对象。

如果字体的 source 属性指定为二进制数据,或者字体的 status 属性不为 unloaded,则此方法不执行任何操作。

语法

js
load()

参数

无。

返回值

一个 Promise,当字体加载时解析为对当前 FontFace 对象的引用,如果加载过程失败则拒绝并抛出一个 NetworkError DOMException

异常

NetworkError DOMException

表示加载字体的尝试失败。

示例

此简单示例加载字体,并使用它在画布元素(ID 为 js-canvas)中显示一些文本。

js
const canvas = document.getElementById("js-canvas");

// load the "Bitter" font from Google Fonts
const fontFile = new FontFace(
  "FontFamily Style Bitter",
  "url(https://fonts.gstatic.com/s/bitter/v7/HEpP8tJXlWaYHimsnXgfCOvvDin1pK8aKteLpeZ5c0A.woff2)",
);
document.fonts.add(fontFile);

fontFile.load().then(
  () => {
    // font loaded successfully!
    canvas.width = 650;
    canvas.height = 100;
    const ctx = canvas.getContext("2d");

    ctx.font = '36px "FontFamily Style Bitter"';
    ctx.fillText("Bitter font loaded", 20, 50);
  },
  (err) => {
    console.error(err);
  },
);

规范

规范
CSS 字体加载模块级别 3
# font-face-load

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。