คำอธิบาย
ใช้ chrome.fontSettings API เพื่อจัดการการตั้งค่าแบบอักษรของ Chrome
สิทธิ์
fontSettingsหากต้องการใช้ Font Settings API คุณต้องประกาศสิทธิ์ "fontSettings" ในไฟล์ Manifest ของส่วนขยาย เช่น
{
"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 จะเลือกแบบอักษรสำหรับซีริลลิก (รหัสสคริปต์ 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 นี้ ให้ติดตั้งตัวอย่าง fontSettings API จากที่เก็บ chrome-extension-samples
ประเภท
FontName
แสดงชื่อแบบอักษร
พร็อพเพอร์ตี้
-
displayName
สตริง
ชื่อที่แสดงของแบบอักษร
-
fontId
สตริง
รหัสแบบอักษร
GenericFamily
ชุดแบบอักษรทั่วไปของ CSS
ค่าแจกแจง
"standard"
"sansserif"
"serif"
"fixed"
"cursive"
"แฟนตาซี"
"คณิตศาสตร์"
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"
"บาหลี"
"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"
"Goth"
"Gran"
"Grek"
"Gujr"
"กูรู"
"Hang"
"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"
"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()
browser.fontSettings.clearDefaultFixedFontSize(
details?: object,
): Promise<void>
ล้างขนาดแบบอักษรคงที่เริ่มต้นที่ตั้งค่าโดยส่วนขยายนี้ (หากมี)
พารามิเตอร์
-
รายละเอียด
object ไม่บังคับ
ปัจจุบันพารามิเตอร์นี้ไม่ได้ใช้งาน
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไป browser.* ตั้งแต่ Chrome 148
clearDefaultFontSize()
browser.fontSettings.clearDefaultFontSize(
details?: object,
): Promise<void>
ล้างขนาดแบบอักษรเริ่มต้นที่ตั้งค่าโดยส่วนขยายนี้ (หากมี)
พารามิเตอร์
-
รายละเอียด
object ไม่บังคับ
ปัจจุบันพารามิเตอร์นี้ไม่ได้ใช้งาน
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไป browser.* ตั้งแต่ Chrome 148
clearFont()
browser.fontSettings.clearFont(
details: object,
): Promise<void>
ล้างแบบอักษรที่ตั้งค่าโดยส่วนขยายนี้ (หากมี)
พารามิเตอร์
-
รายละเอียด
ออบเจ็กต์
-
genericFamily
ชุดแบบอักษรทั่วไปที่ควรล้างแบบอักษร
-
แบบตัวเขียน
ScriptCode ไม่บังคับ
สคริปต์ที่ควรล้างแบบอักษร หากละเว้น ระบบจะล้างการตั้งค่าแบบอักษรของสคริปต์ส่วนกลาง
-
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไป browser.* ตั้งแต่ Chrome 148
clearMinimumFontSize()
browser.fontSettings.clearMinimumFontSize(
details?: object,
): Promise<void>
ล้างขนาดแบบอักษรขั้นต่ำที่ตั้งค่าโดยส่วนขยายนี้ (หากมี)
พารามิเตอร์
-
รายละเอียด
object ไม่บังคับ
ปัจจุบันพารามิเตอร์นี้ไม่ได้ใช้งาน
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไป browser.* ตั้งแต่ Chrome 148
getDefaultFixedFontSize()
browser.fontSettings.getDefaultFixedFontSize(
details?: object,
): Promise<object>
รับขนาดเริ่มต้นสำหรับแบบอักษรที่มีความกว้างคงที่
พารามิเตอร์
-
รายละเอียด
object ไม่บังคับ
ปัจจุบันพารามิเตอร์นี้ไม่ได้ใช้งาน
การคืนสินค้า
-
Promise<object>
Chrome 96 ขึ้นไป browser.* ตั้งแต่ Chrome 148
getDefaultFontSize()
browser.fontSettings.getDefaultFontSize(
details?: object,
): Promise<object>
รับขนาดแบบอักษรเริ่มต้น
พารามิเตอร์
-
รายละเอียด
object ไม่บังคับ
ปัจจุบันพารามิเตอร์นี้ไม่ได้ใช้งาน
การคืนสินค้า
-
Promise<object>
Chrome 96 ขึ้นไป browser.* ตั้งแต่ Chrome 148
getFont()
browser.fontSettings.getFont(
details: object,
): Promise<object>
รับแบบอักษรสำหรับสคริปต์และชุดแบบอักษรทั่วไปที่ระบุ
พารามิเตอร์
-
รายละเอียด
ออบเจ็กต์
-
genericFamily
ชุดแบบอักษรทั่วไปที่ควรดึงข้อมูลแบบอักษร
-
แบบตัวเขียน
ScriptCode ไม่บังคับ
สคริปต์ที่ควรดึงแบบอักษรมาใช้ หากไม่ระบุ ระบบจะดึงการตั้งค่าแบบอักษรสำหรับสคริปต์ส่วนกลาง (รหัสสคริปต์ "Zyyy")
-
การคืนสินค้า
-
Promise<object>
Chrome 96 ขึ้นไป browser.* ตั้งแต่ Chrome 148
การคืนสินค้า
-
Promise<FontName[]>
Chrome 96 ขึ้นไป browser.* ตั้งแต่ Chrome 148
getMinimumFontSize()
browser.fontSettings.getMinimumFontSize(
details?: object,
): Promise<object>
รับขนาดแบบอักษรขั้นต่ำ
พารามิเตอร์
-
รายละเอียด
object ไม่บังคับ
ปัจจุบันพารามิเตอร์นี้ไม่ได้ใช้งาน
การคืนสินค้า
-
Promise<object>
Chrome 96 ขึ้นไป browser.* ตั้งแต่ Chrome 148
setDefaultFixedFontSize()
browser.fontSettings.setDefaultFixedFontSize(
details: object,
): Promise<void>
กำหนดขนาดเริ่มต้นสำหรับแบบอักษรที่มีความกว้างคงที่
พารามิเตอร์
-
รายละเอียด
ออบเจ็กต์
-
pixelSize
ตัวเลข
ขนาดแบบอักษรในหน่วยพิกเซล
-
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไป browser.* ตั้งแต่ Chrome 148
setDefaultFontSize()
browser.fontSettings.setDefaultFontSize(
details: object,
): Promise<void>
กำหนดขนาดแบบอักษรเริ่มต้น
พารามิเตอร์
-
รายละเอียด
ออบเจ็กต์
-
pixelSize
ตัวเลข
ขนาดแบบอักษรในหน่วยพิกเซล
-
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไป browser.* ตั้งแต่ Chrome 148
setFont()
browser.fontSettings.setFont(
details: object,
): Promise<void>
ตั้งค่าแบบอักษรสำหรับสคริปต์และชุดแบบอักษรทั่วไปที่ระบุ
พารามิเตอร์
-
รายละเอียด
ออบเจ็กต์
-
fontId
สตริง
รหัสแบบอักษร สตริงว่างหมายถึงการเปลี่ยนกลับไปใช้การตั้งค่าแบบอักษรสคริปต์ส่วนกลาง
-
genericFamily
ชุดแบบอักษรทั่วไปที่ควรตั้งค่าแบบอักษร
-
แบบตัวเขียน
ScriptCode ไม่บังคับ
โค้ดสคริปต์ที่ควรตั้งค่าแบบอักษร หากละเว้น ระบบจะตั้งค่าแบบอักษรสำหรับสคริปต์ส่วนกลาง (รหัสสคริปต์ "Zyyy")
-
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไป browser.* ตั้งแต่ Chrome 148
setMinimumFontSize()
browser.fontSettings.setMinimumFontSize(
details: object,
): Promise<void>
กำหนดขนาดแบบอักษรขั้นต่ำ
พารามิเตอร์
-
รายละเอียด
ออบเจ็กต์
-
pixelSize
ตัวเลข
ขนาดแบบอักษรในหน่วยพิกเซล
-
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไป browser.* ตั้งแต่ Chrome 148
กิจกรรม
onDefaultFixedFontSizeChanged
browser.fontSettings.onDefaultFixedFontSizeChanged.addListener(
callback: function,
)
เริ่มทำงานเมื่อการตั้งค่าขนาดแบบอักษรคงที่เริ่มต้นมีการเปลี่ยนแปลง
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(details: object) => void
-
รายละเอียด
ออบเจ็กต์
-
levelOfControl
ระดับการควบคุมที่ส่วนขยายนี้มีเหนือการตั้งค่า
-
pixelSize
ตัวเลข
ขนาดแบบอักษรในหน่วยพิกเซล
-
-
onDefaultFontSizeChanged
browser.fontSettings.onDefaultFontSizeChanged.addListener(
callback: function,
)
เริ่มทำงานเมื่อการตั้งค่าขนาดแบบอักษรเริ่มต้นมีการเปลี่ยนแปลง
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(details: object) => void
-
รายละเอียด
ออบเจ็กต์
-
levelOfControl
ระดับการควบคุมที่ส่วนขยายนี้มีเหนือการตั้งค่า
-
pixelSize
ตัวเลข
ขนาดแบบอักษรในหน่วยพิกเซล
-
-
onFontChanged
browser.fontSettings.onFontChanged.addListener(
callback: function,
)
เริ่มทำงานเมื่อการตั้งค่าแบบอักษรมีการเปลี่ยนแปลง
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(details: object) => void
-
รายละเอียด
ออบเจ็กต์
-
fontId
สตริง
รหัสแบบอักษร ดูคำอธิบายในภาษา
getFont -
genericFamily
ชุดแบบอักษรทั่วไปที่มีการเปลี่ยนแปลงการตั้งค่าแบบอักษร
-
levelOfControl
ระดับการควบคุมที่ส่วนขยายนี้มีเหนือการตั้งค่า
-
แบบตัวเขียน
ScriptCode ไม่บังคับ
โค้ดสคริปต์ที่มีการเปลี่ยนแปลงการตั้งค่าแบบอักษร
-
-
onMinimumFontSizeChanged
browser.fontSettings.onMinimumFontSizeChanged.addListener(
callback: function,
)
เริ่มทำงานเมื่อการตั้งค่าขนาดแบบอักษรขั้นต่ำมีการเปลี่ยนแปลง
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(details: object) => void
-
รายละเอียด
ออบเจ็กต์
-
levelOfControl
ระดับการควบคุมที่ส่วนขยายนี้มีเหนือการตั้งค่า
-
pixelSize
ตัวเลข
ขนาดแบบอักษรในหน่วยพิกเซล
-
-