ส่วนขยายทุกรายการต้องมีไฟล์ manifest.json
ในไดเรกทอรีรากซึ่ง
แสดงข้อมูลสำคัญเกี่ยวกับโครงสร้างและการทำงานของส่วนขยายนั้น
หน้านี้อธิบายโครงสร้างของไฟล์ Manifest ของส่วนขยายและฟีเจอร์ต่างๆ
รวมได้
ตัวอย่าง
ตัวอย่างต่อไปนี้ไฟล์ Manifest แสดงโครงสร้างไฟล์ Manifest พื้นฐานและไฟล์ ฟีเจอร์ที่ใช้กันโดยทั่วไปเป็นจุดเริ่มต้นในการสร้างไฟล์ Manifest ของคุณเอง
ไฟล์ Manifest แบบเรียบง่าย
{
"manifest_version": 3,
"name": "Minimal Manifest",
"version": "1.0.0",
"description": "A basic example extension with only required keys",
"icons": {
"48": "images/icon-48.png",
"128": "images/icon-128.png"
},
}
ลงทะเบียนสคริปต์เนื้อหา
{
"manifest_version": 3,
"name": "Run script automatically",
"description": "Runs a script on www.example.com automatically when user installs the extension",
"version": "1.0",
"icons": {
"16": "images/icon-16.png",
"32": "images/icon-32.png",
"48": "images/icon-48.png",
"128": "images/icon-128.png"
},
"content_scripts": [
{
"js": [
"content-script.js"
],
"matches": [
"http://*.example.com//"
]
}
]
}
แทรกสคริปต์เนื้อหา
{
"manifest_version": 3,
"name": "Click to run",
"description": "Runs a script when the user clicks the action toolbar icon.",
"version": "1.0",
"icons": {
"16": "images/icon-16.png",
"32": "images/icon-32.png",
"48": "images/icon-48.png",
"128": "images/icon-128.png"
},
"background": {
"service_worker": "service-worker.js"
},
"action": {
"default_icon": {
"16": "images/icon-16.png",
"32": "images/icon-32.png",
"48": "images/icon-48.png",
"128": "images/icon-128.png"
}
},
"permissions": ["scripting", "activeTab"]
}
ป๊อปอัปที่มีสิทธิ์
{
"manifest_version": 3,
"name": "Popup extension that requests permissions",
"description": "Extension that includes a popup and requests host permissions and storage permissions .",
"version": "1.0",
"icons": {
"16": "images/icon-16.png",
"32": "images/icon-32.png",
"48": "images/icon-48.png",
"128": "images/icon-128.png"
},
"action": {
"default_popup": "popup.html"
},
"host_permissions": [
"https://*.example.com/"
],
"permissions": [
"storage"
]
}
แผงด้านข้าง
{
"manifest_version": 3,
"name": "Side panel extension",
"version": "1.0",
"description": "Extension with a default side panel.",
"icons": {
"16": "images/icon-16.png",
"48": "images/icon-48.png",
"128": "images/icon-128.png"
},
"side_panel": {
"default_path": "sidepanel.html"
},
"permissions": ["sidePanel"]
}
คีย์ไฟล์ Manifest
ต่อไปนี้คือรายการคีย์ไฟล์ Manifest ทั้งหมดที่รองรับ
คีย์ที่แพลตฟอร์มส่วนขยายต้องใช้
"manifest_version"
- จำนวนเต็มที่ระบุเวอร์ชันของรูปแบบไฟล์ Manifest
ของส่วนขยายนั้น ค่าที่รองรับมีเพียง
3
ค่า "name"
- สตริงที่ระบุส่วนขยายใน Chrome Web
Store กล่องโต้ตอบการติดตั้ง และ
หน้าส่วนขยาย Chrome ของผู้ใช้ (
chrome://extensions
) ความยาวสูงสุด 75 อักขระ สำหรับข้อมูลเกี่ยวกับการใช้ชื่อเฉพาะภาษา โปรดดูการปรับให้เป็นสากล "version"
- สตริงที่ระบุหมายเลขเวอร์ชันของส่วนขยาย สำหรับข้อมูลเกี่ยวกับ การจัดรูปแบบหมายเลขเวอร์ชัน โปรดดูเวอร์ชัน
Chrome เว็บสโตร์ต้องใช้คีย์
"description"
- สตริงที่อธิบายส่วนขยายทั้งใน Chrome เว็บสโตร์และ หน้าการจัดการส่วนขยาย มีความยาวได้สูงสุดไม่เกิน 132 อักขระ สำหรับข้อมูล เกี่ยวกับการแปลคำอธิบาย โปรดดูการปรับให้เป็นสากล
"icons"
- ไอคอนอย่างน้อย 1 รายการที่แสดงถึงส่วนขยาย สำหรับข้อมูลเกี่ยวกับ ให้ดูที่ไอคอน
คีย์ที่ไม่บังคับ
"action"
- กำหนดรูปลักษณ์และการทำงานของไอคอนส่วนขยายใน Google
แถบเครื่องมือ ดูข้อมูลเพิ่มเติมได้ที่
chrome.action
"author"
- ระบุอีเมลของบัญชีที่ใช้สร้างบัญชี ส่วนขยาย
"background"
- ระบุไฟล์ JavaScript ที่มี Service Worker ของส่วนขยาย ซึ่งทำหน้าที่เป็น เครื่องจัดการเหตุการณ์ ดูข้อมูลเพิ่มเติมได้จากเกี่ยวกับบริการส่วนขยาย ผู้ปฏิบัติงาน
"chrome_settings_overrides"
- กำหนดการลบล้างสำหรับการตั้งค่า Chrome ที่เลือก สำหรับข้อมูลเพิ่มเติม โปรดดู ลบล้างการตั้งค่า Chrome
"chrome_url_overrides"
- กำหนดการลบล้างสำหรับหน้า Chrome เริ่มต้น สำหรับข้อมูลเพิ่มเติม โปรดดู ลบล้างหน้า Chrome
"commands"
- กำหนดแป้นพิมพ์ลัดภายในส่วนขยาย สำหรับข้อมูลเพิ่มเติม โปรดดูที่ chrome.commands
"content_scripts"
- ระบุไฟล์ JavaScript หรือ CSS ที่จะใช้เมื่อผู้ใช้เปิดเว็บบางเว็บ ดูข้อมูลเพิ่มเติมได้ที่สคริปต์เนื้อหา
"content_security_policy"
- กำหนดข้อจำกัดเกี่ยวกับสคริปต์ รูปแบบ และทรัพยากรอื่นๆ ของส่วนขยาย สามารถใช้ได้ โปรดดูข้อมูลเพิ่มเติมในนโยบายความปลอดภัยของเนื้อหา
"cross_origin_embedder_policy"
- ระบุค่าสำหรับส่วนหัว HTTP สำหรับ Cross-Origin-Embedder-Policy ซึ่ง กำหนดค่าการฝังทรัพยากรแบบข้ามต้นทางในหน้าส่วนขยาย
"cross_origin_opener_policy"
- ระบุค่าสำหรับส่วนหัว HTTP สำหรับ Cross-Origin-Opener-Policy ซึ่งจะช่วยให้ คุณมั่นใจได้ว่าหน้าส่วนขยายระดับบนสุดไม่ได้แชร์บริบทในการท่องเว็บ กับเอกสารข้ามต้นทาง
"declarative_net_request"
- กำหนดกฎแบบคงที่สำหรับ declarativeNetRequest API ซึ่งทำให้บล็อกและแก้ไขคำขอของเครือข่ายได้
"default_locale"
- สตริงที่กำหนดภาษาเริ่มต้นของส่วนขยายที่รองรับ หลายภาษา ตัวอย่างเช่น "en" และ "pt_BR" ต้องระบุคีย์นี้ใน ส่วนขยายที่แปลแล้ว และต้องไม่ใช้ในส่วนขยายที่ไม่มีการแปล ดูข้อมูลเพิ่มเติมได้ที่การปรับให้เป็นสากล
"devtools_page"
- กำหนดหน้าที่ใช้ API ของDevTools
"export"
- ช่วยให้ส่งออกทรัพยากรจากส่วนขยายได้ สำหรับข้อมูลเพิ่มเติม โปรดดู ส่งออก
"externally_connectable"
- ระบุสิ่งที่หน้าเว็บและส่วนขยายอื่นๆ สามารถเชื่อมต่อกับส่วนขยายของคุณได้ สำหรับ
ดูรายละเอียดเพิ่มเติมได้ที่
"externally_connectable"
"homepage_url"
- สตริงที่ระบุ URL สำหรับหน้าแรกของส่วนขยาย หากไม่ระบุ หน้าแรกจะมีค่าเริ่มต้นเป็นหน้า Chrome เว็บสโตร์ของส่วนขยาย ช่องนี้ ซึ่งมีประโยชน์อย่างยิ่งหากคุณโฮสต์ส่วนขยาย ในเว็บไซต์ของคุณ
"host_permissions"
- แสดงรายการหน้าเว็บที่ส่วนขยายของคุณได้รับอนุญาตให้โต้ตอบด้วย กำหนดโดยใช้ รูปแบบการจับคู่ URL ระบบจะขอสิทธิ์จากผู้ใช้สำหรับเว็บไซต์เหล่านี้เมื่อติดตั้ง โปรดดูข้อมูลเพิ่มเติมที่หัวข้อสิทธิ์ของโฮสต์
"import"
- อนุญาตให้นำเข้าทรัพยากรไปยังส่วนขยาย สำหรับข้อมูลเพิ่มเติม โปรดดู นำเข้า
"incognito"
- กำหนดลักษณะการทำงานของส่วนขยายในโหมดไม่ระบุตัวตน ค่าที่รองรับมีดังนี้
"spanning"
,"split"
และ"not_allowed"
สำหรับข้อมูลเพิ่มเติม โปรดดู ไม่ระบุตัวตน "key"
- ระบุรหัสของส่วนขยายสำหรับ Use Case การพัฒนาต่างๆ สำหรับข้อมูลเพิ่มเติม ให้ดูที่คีย์
"minimum_chrome_version"
- กำหนด Chrome เวอร์ชันเก่าที่สุดที่ติดตั้งส่วนขยายได้ ค่า
ต้องเป็นสตริงย่อยของสตริงเวอร์ชันของเบราว์เซอร์ Chrome ที่มีอยู่ เช่น
"107"
หรือ"107.0.5304.87"
ผู้ใช้ที่มี Chrome เวอร์ชันเก่ากว่า เวอร์ชันขั้นต่ำจะเห็นคำว่า "ใช้ร่วมกันไม่ได้" ใน Chrome เว็บสโตร์ และ ไม่สามารถติดตั้งส่วนขยาย หากคุณเพิ่มลงในส่วนขยายที่มีอยู่ ผู้ใช้ที่มี Chrome เวอร์ชันเก่ากว่าจะไม่ได้รับการอัปเดตอัตโนมัติไปยัง ส่วนขยาย ซึ่งรวมถึงผู้ใช้แบบธุรกิจใน ชั่วคราว "oauth2"
- อนุญาตให้ใช้รหัสความปลอดภัย OAuth 2.0 ค่าของคีย์นี้ต้องเป็น
ที่มีพร็อพเพอร์ตี้
"client_id"
และ"scopes"
โปรดดูรายละเอียดที่หัวข้อ OAuth บทแนะนำเวอร์ชัน 2.0 "omnibox"
- อนุญาตให้ส่วนขยายลงทะเบียนคีย์เวิร์ดในแถบที่อยู่ของ Chrome สำหรับข้อมูลเพิ่มเติม โปรดดูที่แถบอเนกประสงค์
"optional_host_permissions"
- ประกาศโฮสต์ที่ไม่บังคับ สิทธิ์สำหรับ ส่วนขยาย
"optional_permissions"
- ประกาศสิทธิ์ที่ไม่บังคับสำหรับส่วนขยาย
"options_page"
- ระบุเส้นทางไปยังไฟล์ options.html สำหรับส่วนขยายที่จะใช้เป็น หน้าตัวเลือก ดูข้อมูลเพิ่มเติมได้ที่มอบ ตัวเลือกเพิ่มเติม
"options_ui"
- ระบุเส้นทางไปยังไฟล์ HTML ที่ให้ผู้ใช้เปลี่ยนตัวเลือกส่วนขยายได้ จากหน้าส่วนขยาย Chrome สำหรับข้อมูลเพิ่มเติม โปรดดูที่ฝัง ตัวเลือกเพิ่มเติม
"permissions"
- เปิดใช้ API ส่วนขยายที่ต้องการ ดูสิทธิ์ เพื่อดูคำอธิบายทั่วไป หน้าอ้างอิงสำหรับ API แต่ละรายการแสดงฟิลด์ สิทธิ์ที่จำเป็น
"requirements"
- ระบุเทคโนโลยีที่จำเป็นต่อการใช้ส่วนขยาย สำหรับรายการที่รองรับ โปรดดูข้อกำหนดที่ข้อกำหนด
"sandbox"
- กำหนดชุดหน้าส่วนขยายที่ไม่มีสิทธิ์เข้าถึง API ส่วนขยาย หรือ การเข้าถึงหน้าที่ไม่ใช่แซนด์บ็อกซ์โดยตรง สำหรับข้อมูลเพิ่มเติม โปรดดู แซนด์บ็อกซ์
"short_name"
- สตริงที่มีชื่อส่วนขยายแบบย่อที่จะใช้ เมื่ออักขระมีจำกัด มีความยาวได้สูงสุดไม่เกิน 12 อักขระ หากนี่คือ ไม่ได้กำหนด เป็นเวอร์ชันตัดของ "ชื่อ" จอแสดงผลหลักแทน
"side_panel"
- ระบุไฟล์ HTML ที่จะแสดงใน sidePanel
"storage"
- ประกาศสคีมา JSON สำหรับพื้นที่เก็บข้อมูลที่มีการจัดการ พื้นที่ สำหรับข้อมูลเพิ่มเติม โปรดดูข้อมูลที่หัวข้อไฟล์ Manifest สำหรับพื้นที่เก็บข้อมูล
"tts_engine"
- ลงทะเบียนส่วนขยายเป็นเครื่องมืออ่านออกเสียงข้อความ สำหรับข้อมูลเพิ่มเติม โปรดดู ttsEngine API
"update_url"
- สตริงที่มี URL ของหน้าการอัปเดตส่วนขยาย ใช้กุญแจนี้หาก คุณโฮสต์ส่วนขยาย นอก Chrome เว็บสโตร์
"version_name"
- สตริงที่อธิบายเวอร์ชันของส่วนขยาย ตัวอย่างเช่น
"1.0 beta"
และ"build rc2"
หากไม่ได้ระบุ "เวอร์ชัน" จะแสดงในหน้า หน้าการจัดการส่วนขยายแทน "web_accessible_resources"
- กำหนดไฟล์ภายในส่วนขยายที่เข้าถึงได้โดยหน้าเว็บหรือที่อื่นๆ ส่วนขยาย สำหรับข้อมูลเพิ่มเติม โปรดดูที่การเข้าถึงเว็บได้ แหล่งข้อมูล
คีย์ ChromeOS (ไม่บังคับ)
"file_browser_handlers"
- ให้สิทธิ์เข้าถึง
fileBrowserHandler
API ซึ่งทำให้ส่วนขยายเข้าถึงโปรแกรมเรียกดูไฟล์ของ ChromeOS ได้ "file_handlers"
- ระบุประเภทไฟล์สำหรับส่วนขยาย ChromeOS ที่ต้องจัดการ สำหรับข้อมูลเพิ่มเติม
ดู
file_handlers
"file_system_provider_capabilities"
- อนุญาตให้เข้าถึง
fileSystemProvider
API ซึ่งช่วยให้ส่วนขยายสร้างระบบไฟล์ที่ ChromeOS ใช้งานได้ "input_components"
- อนุญาตให้ใช้ Input Method Editor API สำหรับข้อมูลเพิ่มเติม โปรดดู
input_components