说明
使用 chrome.fontSettings
API 管理 Chrome 的字体设置。
权限
fontSettings
要使用 Font Settings API,您必须在扩展程序中声明 "fontSettings"
权限
清单。例如:
{
"name": "My Font Settings Extension",
"description": "Customize your fonts",
"version": "0.2",
"permissions": [
"fontSettings"
],
...
}
概念和用法
Chrome 允许某些字体设置取决于特定的常规字体系列和语言 脚本。例如, sans-serif 简体中文使用的字体可能与该字体不同 用于 serif 日语。
Chrome 支持的通用字体系列基于 CSS 通用字体系列,
GenericReference
下列出。当网页指定了通用字体系列时,Chrome 会选择
根据相应设置调整字体。如果未指定通用字体系列,则 Chrome 会使用
“包量”规则的通用字体系列。
当网页指定了语言时,Chrome 会根据 相应的语言脚本。如果未指定语言,则 Chrome 会使用默认设置 或全局、脚本。
支持的语言脚本由 ISO 15924 脚本代码指定,并列在下方
ScriptCode
。从技术上讲,Chrome 设置并不是严格按脚本进行设置,还取决于
语言。例如,当
网页指定了俄语,并且该字体不仅用于西里尔文字,
字体覆盖的所有内容(如拉丁文)。
示例
以下代码可获取阿拉伯语标准字体。
chrome.fontSettings.getFont(
{ genericFamily: 'standard', script: 'Arab' },
function(details) { console.log(details.fontId); }
);
下一个代码段用于设置日语的 sans-serif 字体。
chrome.fontSettings.setFont(
{ genericFamily: 'sansserif', script: 'Jpan', fontId: 'MS PGothic' }
);
若要试用此 API,请安装 chrome-extension-samples 中的 fontSettings API 示例 存储库
类型
FontName
表示字体名称。
属性
-
displayName
字符串
字体的显示名称。
-
fontId
字符串
字体 ID。
GenericFamily
CSS 通用字体系列。
枚举
“标准”
"sansserif"
"serif"
"已修复"
“cursive”
“幻想”
"math"
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”表示。
枚举
“阿法克语”
“阿拉伯语”
“Armi”
“武器”
“Avst”
“巴厘岛”
“巴木”
“贝斯”
“蝙蝠”
“砰”
“Blis”
“Bopo”
“Brah”
“Brai”
“错误”
“Buhd”
“Cakm”
“罐”
“嘉莉”
“Cham”
“谢拉”
“Cirt”
“Copt”
“Cprt”
“Cyrl”
“Cyrs”
“Deva”
“Dsrt”
“重复”
"Egyd"
“Egyh”
“埃及”
“Elba”
“Ethi”
“Geor”
“Geok”
“Glag”
“哥特”
“大”
“希腊”
“Gujr”
“高手”
“悬挂”
“哈尼”
“河野”
“Hans”
“吊”
“Hebr”
“Hluw”
“哼”
“已挂起”
“Inds”
"Ital"
“Java”
“Jpan”
“Jurc”
“Kali”
“卡尔”
“千米”
“科杰”
“Knda”
“Kpel”
“Kthi”
“拉纳”
“老挝语”
“Latf”
“Latg”
“Latn”
“Lepc”
“Limb”
“Lina”
“Linb”
“Lisu”
“洛马”
“Lyci”
“Lydi”
“手”
“男人”
“马雅”
“Mend”
“商品”
“Mero”
“Mlym”
“月球”
“Mong”
“Mroo”
“Mtei”
“Mymr”
“Narb”
“Nbat”
"Nkgb"
“Nkoo”
“Nshu”
“Ogam”
“Olck”
“Orkh”
“Orya”
“Osma”
“棕榈树”
“永久”
“Phag”
“Phli”
“Phlp”
“Phlv”
“Phnx”
"Plrd"
“Prti”
“Rjng”
“Roro”
“Runr”
“Samr”
“Sara”
“Sarb”
“Saur”
“Sgnw”
“锯”
“Shrd”
“Sind”
“信”
“索拉”
“太阳”
“赛罗”
“Syrc”
“赛尔”
“锡尔吉”
“Syrn”
“Tagb”
“Takr”
“故事”
“Talu”
“Taml”
“唐”
“Tavt”
“泰卢语”
“Teng”
“Tfng”
“Tglg”
“塔”
“泰语”
“Tibt”
“Tirh”
“Ugar”
“Vaii”
“Visp”
“Wara”
“Wole”
“Xpeo”
“Xsux”
“Yiii”
“Zmth”
“Zsym”
“Zyyy”
方法
clearDefaultFixedFontSize()
chrome.fontSettings.clearDefaultFixedFontSize(
details?: object,
callback?: function,
)
清除此扩展程序设置的默认固定字体大小(如果有)。
参数
-
详细信息
对象(可选)
此参数目前未使用。
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
承诺<void>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
clearDefaultFontSize()
chrome.fontSettings.clearDefaultFontSize(
details?: object,
callback?: function,
)
清除此扩展程序设置的默认字体大小(如果有)。
参数
-
详细信息
对象(可选)
此参数目前未使用。
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
承诺<void>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
clearFont()
chrome.fontSettings.clearFont(
details: object,
callback?: function,
)
清除此扩展程序设置的字体(如果有)。
参数
-
详细信息
对象
-
genericFamily
应清除其字体的通用字体系列。
-
文字
ScriptCode 可选
应清除其字体的脚本。如果省略,将清除全局脚本字体设置。
-
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
承诺<void>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
clearMinimumFontSize()
chrome.fontSettings.clearMinimumFontSize(
details?: object,
callback?: function,
)
清除此扩展程序设置的字体大小下限(如果有)。
参数
-
详细信息
对象(可选)
此参数目前未使用。
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
承诺<void>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
getDefaultFixedFontSize()
chrome.fontSettings.getDefaultFixedFontSize(
details?: object,
callback?: function,
)
获取等宽字体的默认大小。
参数
-
详细信息
对象(可选)
此参数目前未使用。
-
callback
函数(可选)
callback
参数如下所示:(details: object) => void
-
详细信息
对象
-
levelOfControl
此扩展程序对此设置的控制级别。
-
pixelSize
number
字体大小(以像素为单位)。
-
-
返回
-
Promise<object>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
getDefaultFontSize()
chrome.fontSettings.getDefaultFontSize(
details?: object,
callback?: function,
)
获取默认字体大小。
参数
-
详细信息
对象(可选)
此参数目前未使用。
-
callback
函数(可选)
callback
参数如下所示:(details: object) => void
-
详细信息
对象
-
levelOfControl
此扩展程序对此设置的控制级别。
-
pixelSize
number
字体大小(以像素为单位)。
-
-
返回
-
Promise<object>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
getFont()
chrome.fontSettings.getFont(
details: object,
callback?: function,
)
获取给定脚本和通用字体系列的字体。
参数
-
详细信息
对象
-
genericFamily
应检索其字体的通用字体系列。
-
文字
ScriptCode 可选
要为其检索字体的脚本。如果省略,则会检索全局脚本(脚本代码“Zyyy”)的字体设置。
-
-
callback
函数(可选)
callback
参数如下所示:(details: object) => void
-
详细信息
对象
-
fontId
字符串
字体 ID。该值可能是系统将偏好设置值解析到的字体 ID,而不是字体 ID 首选项值。因此,
fontId
可能与传递给setFont
的字体不同,例如,如果字体在系统上不可用。空字符串表示回退到全局脚本字体设置。 -
levelOfControl
此扩展程序对此设置的控制级别。
-
-
返回
-
Promise<object>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
getFontList()
chrome.fontSettings.getFontList(
callback?: function,
)
获取系统中的字体列表。
返回
-
Promise<FontName[]>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
getMinimumFontSize()
chrome.fontSettings.getMinimumFontSize(
details?: object,
callback?: function,
)
获取最小字体大小。
参数
-
详细信息
对象(可选)
此参数目前未使用。
-
callback
函数(可选)
callback
参数如下所示:(details: object) => void
-
详细信息
对象
-
levelOfControl
此扩展程序对此设置的控制级别。
-
pixelSize
number
字体大小(以像素为单位)。
-
-
返回
-
Promise<object>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
setDefaultFixedFontSize()
chrome.fontSettings.setDefaultFixedFontSize(
details: object,
callback?: function,
)
设置等宽字体的默认大小。
参数
-
详细信息
对象
-
pixelSize
number
字体大小(以像素为单位)。
-
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
承诺<void>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
setDefaultFontSize()
chrome.fontSettings.setDefaultFontSize(
details: object,
callback?: function,
)
设置默认字体大小。
参数
-
详细信息
对象
-
pixelSize
number
字体大小(以像素为单位)。
-
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
承诺<void>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
setFont()
chrome.fontSettings.setFont(
details: object,
callback?: function,
)
设置给定脚本和通用字体系列的字体。
参数
-
详细信息
对象
-
fontId
字符串
字体 ID。空字符串表示回退到全局脚本字体设置。
-
genericFamily
应设置字体的通用字体系列。
-
文字
ScriptCode 可选
应设置字体的脚本代码。如果省略,则会设定全局脚本(脚本代码“Zyyy”)的字体设置。
-
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
承诺<void>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
setMinimumFontSize()
chrome.fontSettings.setMinimumFontSize(
details: object,
callback?: function,
)
设置字体大小下限。
参数
-
详细信息
对象
-
pixelSize
number
字体大小(以像素为单位)。
-
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
承诺<void>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
事件
onDefaultFixedFontSizeChanged
chrome.fontSettings.onDefaultFixedFontSizeChanged.addListener(
callback: function,
)
在默认的固定字体大小设置发生变化时触发。
参数
-
callback
函数
callback
参数如下所示:(details: object) => void
-
详细信息
对象
-
levelOfControl
此扩展程序对此设置的控制级别。
-
pixelSize
number
字体大小(以像素为单位)。
-
-
onDefaultFontSizeChanged
chrome.fontSettings.onDefaultFontSizeChanged.addListener(
callback: function,
)
在默认字体大小设置发生更改时触发。
参数
-
callback
函数
callback
参数如下所示:(details: object) => void
-
详细信息
对象
-
levelOfControl
此扩展程序对此设置的控制级别。
-
pixelSize
number
字体大小(以像素为单位)。
-
-
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
number
字体大小(以像素为单位)。
-
-