說明
使用 chrome.fontSettings API 管理 Chrome 的字型設定。
權限
fontSettings如要使用 Font Settings 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」) 的字型,並將這個字型用於斯拉夫文指令碼,以及字型涵蓋的所有內容,例如拉丁文。
範例
下列程式碼會取得阿拉伯文的標準字型。
browser.fontSettings.getFont(
{ genericFamily: 'standard', script: 'Arab' },
function(details) { console.log(details.fontId); }
);
下一個程式碼片段會設定日文的 Sans-Serif 字型。
browser.fontSettings.setFont(
{ genericFamily: 'sansserif', script: 'Jpan', fontId: 'MS PGothic' }
);
如要試用這個 API,請從 chrome-extension-samples 存放區安裝 fontSettings API 範例。
類型
FontName
代表字型名稱。
屬性
-
displayName
字串
字型的顯示名稱。
-
fontId
字串
字型 ID。
GenericFamily
CSS 一般字型系列。
列舉
"standard"
"sansserif"
"serif"
"fixed"
"cursive"
"fantasy"
"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」表示。
列舉
「Afak」
「阿拉伯」
"Aran"
「Armi」
"Armn"
"Avst"
"Bali"
「Bamu」
「低音」
"Batk"
「Beng」
"Blis"
「Bopo」
「Brah」
"Brai"
"Bugi"
「Buhd」
"Cakm"
"Cans"
「Cari」
"Cham"
"Cher"
"Cirt"
"Copt"
"Cprt"
"Cyrl"
"Cyrs"
「Deva」
"Dsrt"
"Dupl"
「Egyd」
"Egyh"
"Egyp"
"Elba"
"Ethi"
"Geor"
"Geok"
"Glag"
"Goth"
「Gran」
"Grek"
"Gujr"
"Guru"
「掛斷」
"Hani"
"Hano"
"Hans"
"Hant"
"Hebr"
「Hluw」
「嗯」
"Hung"
"Inds"
「Ital」
"Java"
"Jpan"
「Jurc」
「Kali」
"Khar"
"Khmr"
"Khoj"
"Knda"
「Kpel」
「Kthi」
「Lana」
"Laoo"
"Latf"
"Latg"
"Latn"
"Lepc"
"Limb"
「Lina」
"Linb"
"Lisu"
"Loma"
"Lyci"
「Lydi」
"Mand"
「Mani」
「Maya」
"Mend"
"Merc"
「Mero」
"Mlym"
"Moon"
"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"
"Tang"
「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>
清除這個擴充功能設定的預設固定字型大小 (如有)。
參數
-
詳細資料
物件 選填
目前未使用這個參數。
傳回
-
承諾<void>
Chrome 96 以上版本
clearDefaultFontSize()
chrome.fontSettings.clearDefaultFontSize(
details?: object,
): Promise<void>
清除這個擴充功能設定的預設字型大小 (如有)。
參數
-
詳細資料
物件 選填
目前未使用這個參數。
傳回
-
承諾<void>
Chrome 96 以上版本
clearFont()
chrome.fontSettings.clearFont(
details: object,
): Promise<void>
清除這個擴充功能設定的字型 (如果有的話)。
參數
-
詳細資料
物件
-
genericFamily
要清除字型的一般字型系列。
-
文字
ScriptCode 選填
要清除字型的文字。如果省略,系統會清除全域文字字型設定。
-
傳回
-
承諾<void>
Chrome 96 以上版本
clearMinimumFontSize()
chrome.fontSettings.clearMinimumFontSize(
details?: object,
): Promise<void>
清除這個擴充功能設定的最小字型大小 (如有)。
參數
-
詳細資料
物件 選填
目前未使用這個參數。
傳回
-
承諾<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 以上版本
傳回
-
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
數字
字型大小 (以像素為單位)。
-
傳回
-
承諾<void>
Chrome 96 以上版本
setDefaultFontSize()
chrome.fontSettings.setDefaultFontSize(
details: object,
): Promise<void>
設定預設字型大小。
參數
-
詳細資料
物件
-
pixelSize
數字
字型大小 (以像素為單位)。
-
傳回
-
承諾<void>
Chrome 96 以上版本
setFont()
chrome.fontSettings.setFont(
details: object,
): Promise<void>
設定指定指令碼和一般字型系列的字型。
參數
-
詳細資料
物件
-
fontId
字串
字型 ID。空字串表示改用全域指令碼字型設定。
-
genericFamily
要設定字型的一般字型系列。
-
文字
ScriptCode 選填
應設定字型的指令碼代碼。如果省略,系統會設定通用指令碼 (指令碼代碼「Zyyy」) 的字型設定。
-
傳回
-
承諾<void>
Chrome 96 以上版本
setMinimumFontSize()
chrome.fontSettings.setMinimumFontSize(
details: object,
): Promise<void>
設定字型大小下限。
參數
-
詳細資料
物件
-
pixelSize
數字
字型大小 (以像素為單位)。
-
傳回
-
承諾<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
數字
字型大小 (以像素為單位)。
-
-