Spec-Zone.ru › Web APIs

FontFaceSet: метод check()

Примечание: Эта функция доступна в Веб-воркерах.

Метод check() объекта FontFaceSet возвращает true, если вы можете отобразить некоторый текст, используя данное задание шрифтов, не пытаясь использовать шрифты из этого FontFaceSet, которые ещё не полностью загружены. Это означает, что вы можете использовать заданный шрифт, не вызывая замену шрифта.

Примечание: Метод check() не предназначен для проверки возможности отображения определённого стиля шрифта или полной загрузки конкретного шрифта. Вместо этого, он возвращает true, если указанный текст может быть отображён, используя заданный набор шрифтов, без вызова замены шрифта. Это означает, что даже если необходимый шрифт недоступен или не полностью загружен, метод может всё равно вернуть true. Такое поведение помогает избежать визуальных проблем, связанных с заменой шрифтов, но может быть неинтуитивным, если вы пытаетесь подтвердить доступность конкретного шрифта.

Синтаксис

check(font)
check(font, text)

Параметры

font

задание шрифта, использующее синтаксис свойства CSS font, например "italic bold 16px Roboto"

text

ограничить шрифты теми, чей диапазон Unicode содержит хотя бы один из символов в тексте. Эта функция не проверяет покрытие отдельных глифов.

Возвращаемое значение

Значение типа Boolean, которое равно true, если отображение текста с заданным набором шрифтов не будет пытаться использовать шрифты из этого FontFaceSet, которые ещё не полностью загружены.

Это означает, что все шрифты в этом FontFaceSet , соответствующие заданному набору шрифтов, имеют свойство status, установленное в "loaded".

В противном случае, функция возвращает false.

Примеры

В следующем примере мы создаём новый FontFace и добавляем его в FontFaceSet:

const font = new FontFace(
  "molot",
  "url(https://interactive-examples.mdn.mozilla.net/media/fonts/molot.woff2)",
  {
    style: "normal",
    weight: "400",
    stretch: "condensed",
  },
);

document.fonts.add(font);

Незагруженные шрифты

Шрифт ещё не загружен, поэтому check("12px molot") возвращает false, указывая, что при попытке использовать заданный набор шрифтов, будет инициирована загрузка шрифта:

console.log(document.fonts.check("12px molot"));
// false: the matching font is in the set, but is not yet loaded

Системные шрифты

Если мы указываем только системный шрифт в аргументе для check(), он возвращает true, потому что мы можем использовать системный шрифт без загрузки шрифтов из набора:

console.log(document.fonts.check("12px Courier"));
// true: the matching font is a system font

Отсутствующие шрифты

Если мы указываем шрифт, который не входит в FontFaceSet и не является системным, check() возвращает true, потому что в этом случае мы не будем полагаться на шрифты из набора:

console.log(document.fonts.check("12px i-dont-exist"));
// true: the matching font is a nonexistent font

Системные и незагруженные шрифты

Если мы указываем системный шрифт и шрифт из набора, который ещё не загружен, то check() возвращает false:

console.log(document.fonts.check("12px molot, Courier"));
// false: `molot` is in the set but not yet loaded

Загружающиеся шрифты

Если мы указываем шрифт из набора, который ещё загружается, check() возвращает false:

function check() {
  font.load();
  console.log(document.fonts.check("12px molot"));
  // false: font is still loading
  console.log(font.status);
  // "loading"
}

check();

Загруженные шрифты

Если мы указываем шрифт из набора, который загружен, check() возвращает true:

async function check() {
  await font.load();
  console.log(document.fonts.check("12px molot"));
  // true: font has finished loading
  console.log(font.status);
  // "loaded"
}

check();

Спецификации

Спецификация
Модуль CSS Font Loading Level 3
# dom-fontfaceset-check

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
check 120
35До версии 120 этот метод возвращал false вместо true для отсутствующих или локально установленных шрифтов. См. баг 40893726.
120
79До версии 120 этот метод возвращал false вместо true для отсутствующих или локально установленных шрифтов. См. баг 40893726.
41 106
22До версии 106 этот метод возвращал false вместо true для отсутствующих или локально установленных шрифтов. См. баг 40893726.
10 120
35До версии 120 этот метод возвращал false вместо true для отсутствующих или локально установленных шрифтов. См. баг 40893726.
41 80
22До версии 80 этот метод возвращал false вместо true для отсутствующих или локально установленных шрифтов. См. баг 40893726.
10 25.0
3.0До версии 25.0 этот метод возвращал false вместо true для отсутствующих или локально установленных шрифтов. См. баг 40893726.
120
37До версии 120 этот метод возвращал false вместо true для отсутствующих или локально установленных шрифтов. См. баг 40893726.

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet/check

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API