chrome.fontSettings

说明

使用 chrome.fontSettings API 管理 Chrome 的字体设置。

权限

fontSettings

如需使用字体设置 API,您必须在扩展程序清单中声明 "fontSettings" 权限。例如:

{
  "name": "My Font Settings Extension",
  "description": "Customize your fonts",
  "version": "0.2",
  "permissions": [
    "fontSettings"
  ],
  ...
}

概念和用法

Chrome 允许某些字体设置取决于某些通用字体系列和语言文字。例如,用于无衬线简体中文字体的字体可能与用于衬线日文字体的字体不同。

Chrome 支持的通用字体系列基于 CSS 通用字体系列,并列在 GenericReference 下。当网页指定了通用字体系列时,Chrome 会根据相应设置选择字体。如果未指定任何通用字体系列,Chrome 会使用“标准”通用字体系列的设置。

当网页指定语言时,Chrome 会根据相应语言文字的设置选择字体。如果未指定语言,Chrome 会使用默认脚本或全局脚本的设置。

受支持的语言文字由 ISO 15924 文字代码指定,并列在 ScriptCode 下。从技术上讲,Chrome 设置并非严格按脚本进行,还取决于语言。例如,当网页指定俄语时,Chrome 会选择西里尔文字体(ISO 15924 文字代码“Cyrl”),并且不仅将此字体用于西里尔文字,还会用于该字体涵盖的所有内容,例如拉丁文字。

示例

以下代码可获取阿拉伯语的标准字体。

chrome.fontSettings.getFont(
  { genericFamily: 'standard', script: 'Arab' },
  function(details) { console.log(details.fontId); }
);

以下代码段为日语设置了无衬线字体。

chrome.fontSettings.setFont(
  { genericFamily: 'sansserif', script: 'Jpan', fontId: 'MS PGothic' }
);

如需试用此 API,请从 chrome-extension-samples 代码库中安装 fontSettings API 示例

类型

FontName

表示字体名称。

属性

  • displayName

    字符串

    字体的显示名称。

  • fontId

    字符串

    字体 ID。

GenericFamily

一个 CSS 通用字体系列。

枚举

“标准”

"sansserif"

"serif"

“固定”

“草书”

"fantasy"

“数学”

LevelOfControl

以下值之一: not\_controllable:无法由任何扩展程序控制 controlled\_by\_other\_extensions:由优先级较高的扩展程序控制 controllable\_by\_this\_extension:可由此扩展程序控制 controlled\_by\_this\_extension:由此扩展程序控制

枚举

"not_controllable"

"controlled_by_other_extensions"

"controllable_by_this_extension"

"controlled_by_this_extension"

ScriptCode

ISO 15924 文字代码。默认脚本(即全局脚本)由脚本代码“Zyyy”表示。

枚举

“Afak”

"阿拉伯语"

"Armi"

"Armn"

“Avst”

“巴厘岛”

"Bamu"

“低音”

“Batk”

“Beng”

“Blis”

“Bopo”

“Brah”

“Brai”

“Bugi”

“Buhd”

“Cakm”

“罐头”

“Cari”

“Cham”

“Cher”

“Cirt”

“Copt”

“Cprt”

"Cyrl"

“Cyrs”

“Deva”

“Dsrt”

“Dupl”

“Egyd”

“Egyh”

"Egyp"

“Elba”

“Ethi”

“Geor”

“Geok”

“Glag”

“哥特”

“Gran”

“Grek”

"Gujr"

“Guru”

“挂起”

“Hani”

“Hano”

"Hans"

“Hant”

“Hebr”

"Hluw"

"Hmng"

“Hung”

“Inds”

“Ital”

“Java”

“Jpan”

“Jurc”

“Kali”

“Khar”

"Khmr"

“Khoj”

“Knda”

“Kpel”

“Kthi”

“Lana”

“Laoo”

“Latf”

“Latg”

"Latn"

“Lepc”

“肢体”

“莉娜”

“Linb”

“傈僳语”

“Loma”

“Lyci”

“Lydi”

“Mand”

“Mani”

“玛雅”

“修复”

“Merc”

“Mero”

"Mlym"

“月亮”

“Mong”

"Mroo"

“Mtei”

“Mymr”

“Narb”

“Nbat”

"Nkgb"

“Nkoo”

“Nshu”

"Ogam"

“Olck”

“Orkh”

“Orya”

"Osma"

“Palm”

“Perm”

“Phag”

“Phli”

“Phlp”

“Phlv”

“Phnx”

“Plrd”

“Prti”

“Rjng”

“Roro”

“Runr”

“Samr”

“Sara”

“Sarb”

“Saur”

“Sgnw”

“Shaw”

“Shrd”

“Sind”

“Sinh”

“Sora”

“Sund”

“Sylo”

“Syrc”

“Syre”

“Syrj”

“Syrn”

“Tagb”

“Takr”

“Tale”

“Talu”

“Taml”

“唐”

“Tavt”

“Telu”

“Teng”

“Tfng”

"Tglg"

“Thaa”

"泰语"

“Tibt”

“Tirh”

“Ugar”

“Vaii”

“Visp”

“Wara”

“Wole”

“Xpeo”

"Xsux"

“Yiii”

“Zmth”

“Zsym”

"Zyyy"

方法

clearDefaultFixedFontSize()

chrome.fontSettings.clearDefaultFixedFontSize(
  details?: object,
)
: Promise<void>

清除此扩展程序设置的默认固定字体大小(如果有)。

参数

  • 详细信息

    对象(可选)

    此参数目前尚未使用。

返回

  • Promise<void>

    Chrome 96 及更高版本

clearDefaultFontSize()

chrome.fontSettings.clearDefaultFontSize(
  details?: object,
)
: Promise<void>

清除此扩展程序设置的默认字号(如有)。

参数

  • 详细信息

    对象(可选)

    此参数目前尚未使用。

返回

  • Promise<void>

    Chrome 96 及更高版本

clearFont()

chrome.fontSettings.clearFont(
  details: object,
)
: Promise<void>

清除此扩展程序设置的字体(如果有)。

参数

  • 详细信息

    对象

    • genericFamily

      应清除字体的通用字体系列。

    • 文字

      ScriptCode(可选)

      应清除字体的脚本。如果省略,则会清除全局脚本字体设置。

返回

  • Promise<void>

    Chrome 96 及更高版本

clearMinimumFontSize()

chrome.fontSettings.clearMinimumFontSize(
  details?: object,
)
: Promise<void>

清除此扩展程序设置的最小字号(如有)。

参数

  • 详细信息

    对象(可选)

    此参数目前尚未使用。

返回

  • Promise<void>

    Chrome 96 及更高版本

getDefaultFixedFontSize()

chrome.fontSettings.getDefaultFixedFontSize(
  details?: object,
)
: Promise<object>

获取等宽字体的默认大小。

参数

  • 详细信息

    对象(可选)

    此参数目前尚未使用。

返回

  • Promise<object>

    Chrome 96 及更高版本

getDefaultFontSize()

chrome.fontSettings.getDefaultFontSize(
  details?: object,
)
: Promise<object>

获取默认字号。

参数

  • 详细信息

    对象(可选)

    此参数目前尚未使用。

返回

  • Promise<object>

    Chrome 96 及更高版本

getFont()

chrome.fontSettings.getFont(
  details: object,
)
: Promise<object>

获取指定文字和通用字体系列的字体。

参数

  • 详细信息

    对象

    • genericFamily

      要检索的字体的通用字体系列。

    • 文字

      ScriptCode(可选)

      应检索字体的脚本。如果省略,则检索全局脚本(脚本代码“Zyyy”)的字体设置。

返回

  • Promise<object>

    Chrome 96 及更高版本

getFontList()

chrome.fontSettings.getFontList(): Promise<FontName[]>

获取系统中的字体列表。

返回

  • Promise<FontName[]>

    Chrome 96 及更高版本

getMinimumFontSize()

chrome.fontSettings.getMinimumFontSize(
  details?: object,
)
: Promise<object>

获取最小字号。

参数

  • 详细信息

    对象(可选)

    此参数目前尚未使用。

返回

  • Promise<object>

    Chrome 96 及更高版本

setDefaultFixedFontSize()

chrome.fontSettings.setDefaultFixedFontSize(
  details: object,
)
: Promise<void>

为固定宽度字体设置默认大小。

参数

  • 详细信息

    对象

    • pixelSize

      数值

      字体大小(以像素为单位)。

返回

  • Promise<void>

    Chrome 96 及更高版本

setDefaultFontSize()

chrome.fontSettings.setDefaultFontSize(
  details: object,
)
: Promise<void>

设置默认字体大小。

参数

  • 详细信息

    对象

    • pixelSize

      数值

      字体大小(以像素为单位)。

返回

  • Promise<void>

    Chrome 96 及更高版本

setFont()

chrome.fontSettings.setFont(
  details: object,
)
: Promise<void>

为给定的文字和通用字体系列设置字体。

参数

  • 详细信息

    对象

    • fontId

      字符串

      字体 ID。空字符串表示回退到全局脚本字体设置。

    • genericFamily

      应设置的字体所对应的通用字体系列。

    • 文字

      ScriptCode(可选)

      应设置的字体所对应的脚本代码。如果省略,则会设置全局脚本(脚本代码“Zyyy”)的字体设置。

返回

  • Promise<void>

    Chrome 96 及更高版本

setMinimumFontSize()

chrome.fontSettings.setMinimumFontSize(
  details: object,
)
: Promise<void>

设置最小字号。

参数

  • 详细信息

    对象

    • pixelSize

      数值

      字体大小(以像素为单位)。

返回

  • Promise<void>

    Chrome 96 及更高版本

事件

onDefaultFixedFontSizeChanged

chrome.fontSettings.onDefaultFixedFontSizeChanged.addListener(
  callback: function,
)

在默认固定字号设置发生变化时触发。

参数

  • callback

    函数

    callback 参数如下所示:

    (details: object) => void

    • 详细信息

      对象

      • levelOfControl

        相应扩展程序对相应设置的控制级别。

      • pixelSize

        数值

        字体大小(以像素为单位)。

onDefaultFontSizeChanged

chrome.fontSettings.onDefaultFontSizeChanged.addListener(
  callback: function,
)

在默认字号设置发生变化时触发。

参数

  • callback

    函数

    callback 参数如下所示:

    (details: object) => void

    • 详细信息

      对象

      • levelOfControl

        相应扩展程序对相应设置的控制级别。

      • pixelSize

        数值

        字体大小(以像素为单位)。

onFontChanged

chrome.fontSettings.onFontChanged.addListener(
  callback: function,
)

在字体设置发生更改时触发。

参数

  • callback

    函数

    callback 参数如下所示:

    (details: object) => void

    • 详细信息

      对象

      • fontId

        字符串

        字体 ID。请参阅 getFont 中的说明。

      • genericFamily

        字体设置已更改的通用字体系列。

      • levelOfControl

        相应扩展程序对相应设置的控制级别。

      • 文字

        ScriptCode(可选)

        字体设置已更改的脚本代码。

onMinimumFontSizeChanged

chrome.fontSettings.onMinimumFontSizeChanged.addListener(
  callback: function,
)

当最小字号设置发生变化时触发。

参数

  • callback

    函数

    callback 参数如下所示:

    (details: object) => void

    • 详细信息

      对象

      • levelOfControl

        相应扩展程序对相应设置的控制级别。

      • pixelSize

        数值

        字体大小(以像素为单位)。