คำอธิบาย
ใช้ chrome.runtime API เพื่อดึงข้อมูล Service Worker, แสดงรายละเอียดเกี่ยวกับไฟล์ Manifest รวมถึงฟังและตอบสนองต่อเหตุการณ์ในวงจรของส่วนขยาย นอกจากนี้ คุณยังใช้ API นี้เพื่อแปลง Relative Path ของ URL เป็น URL แบบเต็มที่ถูกต้องได้ด้วย
สมาชิกส่วนใหญ่ของ API นี้ไม่ต้องใช้สิทธิ์ใดๆ สิทธิ์นี้จำเป็นสำหรับ connectNative(), sendNativeMessage() และ onNativeConnect
ตัวอย่างต่อไปนี้แสดงวิธีประกาศสิทธิ์ "nativeMessaging" ในไฟล์ Manifest
manifest.json:
{
"name": "My extension",
...
"permissions": [
"nativeMessaging"
],
...
}
แนวคิดและการใช้งาน
Runtime API มีเมธอดเพื่อรองรับหลายๆ ด้านที่ส่วนขยายของคุณสามารถใช้ได้ ดังนี้
- การส่งข้อความ
- ส่วนขยายของคุณสามารถสื่อสารกับบริบทต่างๆ ภายในส่วนขยายของคุณและกับส่วนขยายอื่นๆ โดยใช้เมธอดและเหตุการณ์ต่อไปนี้
connect(),onConnect,onConnectExternal,sendMessage(),onMessageและonMessageExternalนอกจากนี้ ส่วนขยายยังสามารถส่งข้อความไปยังแอปพลิเคชันแบบเนทีฟในอุปกรณ์ของผู้ใช้โดยใช้connectNative()และsendNativeMessage()ได้ด้วย
- การเข้าถึงข้อมูลเมตาของส่วนขยายและแพลตฟอร์ม
- เมธอดเหล่านี้ช่วยให้คุณดึงข้อมูลเมตาที่เฉพาะเจาะจงหลายรายการเกี่ยวกับส่วนขยายและแพลตฟอร์มได้ เมธอดในหมวดหมู่นี้ ได้แก่
getManifest()และgetPlatformInfo() - การจัดการวงจรและตัวเลือกของส่วนขยาย
- พร็อพเพอร์ตี้เหล่านี้ช่วยให้คุณดำเนินการเมตาบางอย่างในส่วนขยายและแสดงหน้าตัวเลือกได้
เมธอดและเหตุการณ์ในหมวดหมู่นี้ ได้แก่
onInstalled,onStartup,openOptionsPage(),reload(),requestUpdateCheck()และsetUninstallURL() - ยูทิลิตีตัวช่วย
- เมธอดเหล่านี้มียูทิลิตี เช่น การแปลงการแสดงทรัพยากรภายในเป็นรูปแบบภายนอก วิธีการในหมวดหมู่นี้ ได้แก่
getURL() - ยูทิลิตีโหมดคีออสก์
- วิธีการเหล่านี้ใช้ได้เฉพาะใน ChromeOS และมีไว้เพื่อรองรับการใช้งานคีออสก์เป็นหลัก
เมธอดในหมวดหมู่นี้ ได้แก่
restart()และrestartAfterDelay()`
ลักษณะการทำงานของส่วนขยายที่ไม่ได้แพ็ก
เมื่อโหลดซ้ำส่วนขยายที่คลายแพ็กเกจ ระบบจะถือว่าเป็นการอัปเดต ซึ่งหมายความว่าเหตุการณ์ browser.runtime.onInstalled จะเริ่มทํางานโดยมีเหตุผลเป็น "update" ซึ่งรวมถึงเมื่อโหลดส่วนขยายซ้ำด้วย browser.runtime.reload()
กรณีการใช้งาน
เพิ่มรูปภาพลงในหน้าเว็บ
หน้าเว็บต้องระบุ URL แบบเต็มของทรัพยากร (เช่น <img src="https://example.com/logo.png">) เพื่อเข้าถึงเนื้อหาที่โฮสต์ในโดเมนอื่น เช่นเดียวกับการรวมชิ้นงานส่วนขยายไว้ในหน้าเว็บ ความแตกต่าง 2 ประการคือ ชิ้นงานของส่วนขยายต้องแสดงเป็นทรัพยากรที่เข้าถึงได้บนเว็บ และโดยปกติแล้วสคริปต์เนื้อหาจะมีหน้าที่แทรกชิ้นงานของส่วนขยาย
ในตัวอย่างนี้ ส่วนขยายจะเพิ่ม logo.png ลงในหน้าที่สคริปต์เนื้อหาถูกแทรกเข้าไปโดยใช้ runtime.getURL() เพื่อสร้าง URL ที่สมบูรณ์ แต่ก่อนอื่น ต้องประกาศชิ้นงานเป็นทรัพยากรที่เข้าถึงได้บนเว็บในไฟล์ Manifest
manifest.json:
{
...
"web_accessible_resources": [
{
"resources": [ "logo.png" ],
"matches": [ "https://*/*" ]
}
],
...
}
content.js:
{ // Block used to avoid setting global variables
const img = document.createElement('img');
img.src = browser.runtime.getURL('logo.png');
document.body.append(img);
}
ส่งข้อมูลจากสคริปต์เนื้อหาไปยัง Service Worker
สคริปต์เนื้อหาของส่วนขยายมักจะต้องใช้ข้อมูลที่จัดการโดยส่วนอื่นของส่วนขยาย เช่น Service Worker บริบททั้ง 2 นี้ไม่สามารถเข้าถึงค่าของกันและกันได้โดยตรง เช่นเดียวกับหน้าต่างเบราว์เซอร์ 2 หน้าต่างที่เปิดหน้าเว็บเดียวกัน แต่ส่วนขยายสามารถใช้การส่งข้อความเพื่อประสานงานในบริบทต่างๆ เหล่านี้แทนได้
ในตัวอย่างนี้ สคริปต์เนื้อหาต้องการข้อมูลบางอย่างจาก Service Worker ของส่วนขยายเพื่อเริ่มต้น UI หากต้องการรับข้อมูลนี้ ระบบจะส่งข้อความ get-user-data ที่นักพัฒนาแอปกำหนดไปยัง Service Worker และจะตอบกลับด้วยสำเนาข้อมูลของผู้ใช้
content.js:
// 1. Send a message to the service worker requesting the user's data
browser.runtime.sendMessage('get-user-data', (response) => {
// 3. Got an asynchronous response with the data from the service worker
console.log('received user data', response);
initializeUI(response);
});
service-worker.js:
// Example of a simple user data object
const user = {
username: 'demo-user'
};
browser.runtime.onMessage.addListener((message, sender, sendResponse) => {
// 2. A page requested user data, respond with a copy of `user`
if (message === 'get-user-data') {
sendResponse(user);
}
});
รวบรวมความคิดเห็นเกี่ยวกับการถอนการติดตั้ง
ส่วนขยายจำนวนมากใช้แบบสำรวจหลังการถอนการติดตั้งเพื่อทำความเข้าใจว่าส่วนขยายจะให้บริการผู้ใช้ได้ดียิ่งขึ้นและปรับปรุงการคงผู้ใช้ไว้ได้อย่างไร ตัวอย่างต่อไปนี้แสดงวิธีเพิ่มฟังก์ชันนี้
background.js:
browser.runtime.onInstalled.addListener(details => {
if (details.reason === browser.runtime.OnInstalledReason.INSTALL) {
browser.runtime.setUninstallURL('https://example.com/extension-survey');
}
});
ตัวอย่าง
ดูตัวอย่าง Runtime API เพิ่มเติมได้ที่การสาธิต Manifest V3 - ทรัพยากรที่เข้าถึงได้บนเว็บ
ประเภท
ContextFilter
ตัวกรองเพื่อจับคู่กับบริบทของส่วนขยายบางอย่าง บริบทที่ตรงกันต้องตรงกับตัวกรองที่ระบุทั้งหมด ตัวกรองที่ไม่ได้ระบุจะตรงกับบริบทที่มีอยู่ทั้งหมด ดังนั้น ตัวกรอง `{}` จะจับคู่กับบริบทที่มีอยู่ทั้งหมด
พร็อพเพอร์ตี้
-
contextIds
string[] ไม่บังคับ
-
contextTypes
ContextType[] ไม่บังคับ
-
documentIds
string[] ไม่บังคับ
-
documentOrigins
string[] ไม่บังคับ
-
documentUrls
string[] ไม่บังคับ
-
frameIds
number[] ไม่บังคับ
-
ไม่ระบุตัวตน
บูลีน ไม่บังคับ
-
tabIds
number[] ไม่บังคับ
-
windowIds
number[] ไม่บังคับ
ContextType
ค่าแจกแจง
"TAB"
ระบุประเภทบริบทเป็นแท็บ
"POPUP"
ระบุประเภทบริบทเป็นหน้าต่างป๊อปอัปของส่วนขยาย
"BACKGROUND"
ระบุประเภทบริบทเป็น Service Worker
"OFFSCREEN_DOCUMENT"
ระบุประเภทบริบทเป็นเอกสารนอกหน้าจอ
"SIDE_PANEL"
ระบุประเภทบริบทเป็นแผงด้านข้าง
"DEVELOPER_TOOLS"
ระบุประเภทบริบทเป็นเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์
ExtensionContext
บริบทที่โฮสต์เนื้อหาของส่วนขยาย
พร็อพเพอร์ตี้
-
contextId
สตริง
ตัวระบุที่ไม่ซ้ำกันสำหรับบริบทนี้
-
contextType
ประเภทของบริบทที่สอดคล้องกัน
-
documentId
สตริง ไม่บังคับ
UUID สำหรับเอกสารที่เชื่อมโยงกับบริบทนี้ หรือไม่ได้กำหนดไว้หากบริบทนี้ไม่ได้โฮสต์ในเอกสาร
-
documentOrigin
สตริง ไม่บังคับ
ต้นทางของเอกสารที่เชื่อมโยงกับบริบทนี้ หรือไม่ได้กำหนดไว้หากบริบทไม่ได้โฮสต์ในเอกสาร
-
documentUrl
สตริง ไม่บังคับ
URL ของเอกสารที่เชื่อมโยงกับบริบทนี้ หรือไม่ได้กำหนดไว้หากบริบทไม่ได้โฮสต์ในเอกสาร
-
frameId
ตัวเลข
รหัสของเฟรมสำหรับบริบทนี้ หรือ -1 หากบริบทนี้ไม่ได้โฮสต์ในเฟรม
-
ไม่ระบุตัวตน
บูลีน
บริบทเชื่อมโยงกับโปรไฟล์ที่ไม่ระบุตัวตนหรือไม่
-
tabId
ตัวเลข
รหัสของแท็บสำหรับบริบทนี้ หรือ -1 หากบริบทนี้ไม่ได้โฮสต์ในแท็บ
-
windowId
ตัวเลข
รหัสของหน้าต่างสำหรับบริบทนี้ หรือ -1 หากบริบทนี้ไม่ได้โฮสต์ในหน้าต่าง
ExtensionLoadDetails
รายละเอียดเกี่ยวกับเหตุการณ์การโหลดส่วนขยาย
พร็อพเพอร์ตี้
-
previousVersion
สตริง ไม่บังคับ
ระบุเวอร์ชันก่อนหน้าของส่วนขยาย ซึ่งจะปรากฏก็ต่อเมื่อ "reason" เป็น "update" หรือ "enable" เท่านั้น หาก "reason" คือ "update" นี่คือเวอร์ชันของส่วนขยายก่อนที่จะอัปเดต หาก "reason" เป็น "enable" แสดงว่านี่เป็นเวอร์ชันปัจจุบันของส่วนขยาย
-
เหตุผล
เหตุผลที่ส่งเหตุการณ์นี้
MessageSender
ออบเจ็กต์ที่มีข้อมูลเกี่ยวกับบริบทของสคริปต์ที่ส่งข้อความหรือคำขอ
พร็อพเพอร์ตี้
-
documentId
สตริง ไม่บังคับ
Chrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148UUID ของเอกสารที่เปิดการเชื่อมต่อ
-
documentLifecycle
สตริง ไม่บังคับ
Chrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148วงจรของเอกสารที่เปิดการเชื่อมต่อ ณ เวลาที่สร้างพอร์ต โปรดทราบว่าสถานะวงจรของเอกสารอาจมีการเปลี่ยนแปลงตั้งแต่สร้างพอร์ต
-
frameId
number ไม่บังคับ
เฟรมที่เปิดการเชื่อมต่อ 0 สำหรับเฟรมระดับบนสุด และค่าบวกสำหรับเฟรมย่อย ระบบจะตั้งค่านี้เมื่อตั้งค่า
tabเท่านั้น -
id
สตริง ไม่บังคับ
รหัสของส่วนขยายที่เปิดการเชื่อมต่อ (หากมี)
-
nativeApplication
สตริง ไม่บังคับ
Chrome 74 ขึ้นไป browser.* ตั้งแต่ Chrome 148ชื่อของแอปพลิเคชันแบบเนทีฟที่เปิดการเชื่อมต่อ (หากมี)
-
origin
สตริง ไม่บังคับ
Chrome 80 ขึ้นไป เบราว์เซอร์* ตั้งแต่ Chrome 148ต้นทางของหน้าเว็บหรือเฟรมที่เปิดการเชื่อมต่อ ซึ่งอาจแตกต่างจากพร็อพเพอร์ตี้ URL (เช่น about:blank) หรืออาจเป็นแบบทึบแสง (เช่น iframe ที่ทำแซนด์บ็อกซ์) ซึ่งจะเป็นประโยชน์ในการระบุว่าแหล่งที่มาเชื่อถือได้หรือไม่ หากเราไม่สามารถบอกได้ทันทีจาก URL
-
แท็บ
Tab ไม่บังคับ
tabs.Tabที่เปิดการเชื่อมต่อ (หากมี) พร็อพเพอร์ตี้นี้จะปรากฏเฉพาะเมื่อเปิดการเชื่อมต่อจากแท็บ (รวมถึงสคริปต์เนื้อหา) และเฉพาะเมื่อผู้รับเป็นส่วนขยาย ไม่ใช่แอป -
tlsChannelId
สตริง ไม่บังคับ
รหัสช่อง TLS ของหน้าหรือเฟรมที่เปิดการเชื่อมต่อ หากส่วนขยายร้องขอ และหากมี
-
URL
สตริง ไม่บังคับ
URL ของหน้าเว็บหรือเฟรมที่เปิดการเชื่อมต่อ หากผู้ส่งอยู่ใน iframe จะเป็น URL ของ iframe ไม่ใช่ URL ของหน้าเว็บที่โฮสต์
OnInstalledReason
เหตุผลที่ส่งเหตุการณ์นี้
ค่าแจกแจง
"install"
ระบุเหตุผลของเหตุการณ์เป็นการติดตั้ง
"update"
ระบุสาเหตุของเหตุการณ์เป็นการอัปเดตส่วนขยาย
"chrome_update"
ระบุเหตุผลของเหตุการณ์เป็นการอัปเดต Chrome
"shared_module_update"
ระบุสาเหตุของเหตุการณ์เป็นการอัปเดตโมดูลที่แชร์
OnLoadedReason
เหตุผลที่ส่งเหตุการณ์นี้
ค่าแจกแจง
"install"
ติดตั้งส่วนขยายใหม่แล้ว
"update"
ระบบโหลดส่วนขยายซ้ำหลังจากการอัปเดต
"browser_update"
เบราว์เซอร์ได้รับการอัปเดตเป็นเวอร์ชันใหม่
"enable"
ส่วนขยายเปิดใช้อีกครั้งจากสถานะปิดใช้
"startup"
ระบบกำลังโหลดส่วนขยายระหว่างการเริ่มต้นเบราว์เซอร์
"reload"
มีการโหลดส่วนขยายซ้ำ (เช่น ผ่าน chrome.runtime.reload() หรือผู้ใช้โหลดส่วนขยายซ้ำด้วยตนเอง)
OnRestartRequiredReason
สาเหตุที่มีการส่งเหตุการณ์ ระบบจะใช้ "app_update" เมื่อจำเป็นต้องรีสตาร์ทเนื่องจากมีการอัปเดตแอปพลิเคชันเป็นเวอร์ชันใหม่ "os_update" จะใช้เมื่อจำเป็นต้องรีสตาร์ทเนื่องจากเบราว์เซอร์/ระบบปฏิบัติการได้รับการอัปเดตเป็นเวอร์ชันใหม่ ระบบจะใช้ "periodic" เมื่อระบบทำงานนานกว่าระยะเวลาทำงานที่อนุญาตซึ่งตั้งค่าไว้ในนโยบายองค์กร
ค่าแจกแจง
"app_update"
ระบุเหตุผลของเหตุการณ์เป็นการอัปเดตแอป
"os_update"
ระบุเหตุผลของเหตุการณ์เป็นการอัปเดตระบบปฏิบัติการ
"periodic"
ระบุสาเหตุของเหตุการณ์เป็นการรีสตาร์ทแอปเป็นระยะๆ
PlatformArch
สถาปัตยกรรมตัวประมวลผลของเครื่อง
ค่าแจกแจง
"arm"
ระบุสถาปัตยกรรมโปรเซสเซอร์เป็น arm
"arm64"
ระบุสถาปัตยกรรมโปรเซสเซอร์เป็น arm64
"x86-32"
ระบุสถาปัตยกรรมโปรเซสเซอร์เป็น x86-32
"x86-64"
ระบุสถาปัตยกรรมโปรเซสเซอร์เป็น x86-64
"mips"
ระบุสถาปัตยกรรมโปรเซสเซอร์เป็น mips
"mips64"
ระบุสถาปัตยกรรมโปรเซสเซอร์เป็น mips64
"riscv64"
ระบุสถาปัตยกรรมโปรเซสเซอร์เป็น riscv64
PlatformInfo
ออบเจ็กต์ที่มีข้อมูลเกี่ยวกับแพลตฟอร์มปัจจุบัน
พร็อพเพอร์ตี้
-
arch
สถาปัตยกรรมตัวประมวลผลของเครื่อง
-
nacl_arch
PlatformNaclArch ไม่บังคับ
เลิกใช้งานตั้งแต่ Chrome 149แอตทริบิวต์นี้เลิกใช้งานแล้วหลังจากนำ Native Client ออกทั้งหมด
สถาปัตยกรรมไคลเอ็นต์เนทีฟ ซึ่งอาจแตกต่างจาก arch ในบางแพลตฟอร์ม
-
os
ระบบปฏิบัติการที่ Chrome ทำงานอยู่
PlatformNaclArch
enum นี้เลิกใช้งานแล้วหลังจากการนำ Native Client ออกอย่างสมบูรณ์
สถาปัตยกรรมไคลเอ็นต์เนทีฟ ซึ่งอาจแตกต่างจาก arch ในบางแพลตฟอร์ม
ค่าแจกแจง
"arm"
ระบุสถาปัตยกรรมไคลเอ็นต์แบบเนทีฟเป็น arm
"x86-32"
ระบุสถาปัตยกรรมไคลเอ็นต์แบบเนทีฟเป็น x86-32
"x86-64"
ระบุสถาปัตยกรรมไคลเอ็นต์แบบเนทีฟเป็น x86-64
"mips"
ระบุสถาปัตยกรรมไคลเอ็นต์แบบเนทีฟเป็น mips
"mips64"
ระบุสถาปัตยกรรมไคลเอ็นต์แบบเนทีฟเป็น mips64
PlatformOs
ระบบปฏิบัติการที่ Chrome ทำงานอยู่
ค่าแจกแจง
"mac"
ระบุระบบปฏิบัติการ MacOS
"win"
ระบุระบบปฏิบัติการ Windows
"android"
ระบุระบบปฏิบัติการ Android
"cros"
ระบุระบบปฏิบัติการ Chrome
"linux"
ระบุระบบปฏิบัติการ Linux
"openbsd"
ระบุระบบปฏิบัติการ OpenBSD
Port
ออบเจ็กต์ที่อนุญาตให้สื่อสารแบบ 2 ทางกับหน้าอื่นๆ ดูข้อมูลเพิ่มเติมได้ที่การเชื่อมต่อที่ใช้ได้นาน
พร็อพเพอร์ตี้
-
name
สตริง
ชื่อของพอร์ตตามที่ระบุในการเรียกใช้
runtime.connect -
onDisconnect
Event<functionvoidvoid>
เริ่มทำงานเมื่อพอร์ตถูกยกเลิกการเชื่อมต่อจากปลายทางอื่น ระบบอาจตั้งค่า
runtime.lastErrorหากพอร์ตถูกตัดการเชื่อมต่อเนื่องจากข้อผิดพลาด หากพอร์ตปิดผ่าน disconnect เหตุการณ์นี้จะเริ่มทำงานที่ปลายอีกด้านเท่านั้น เหตุการณ์นี้จะเริ่มทำงานอย่างมากที่สุด 1 ครั้ง (ดูอายุการใช้งานของพอร์ตด้วย)ฟังก์ชัน
onDisconnect.addListenerจะมีลักษณะดังนี้(callback: function) => {...}
-
onMessage
Event<functionvoidvoid>
เหตุการณ์นี้จะเริ่มทำงานเมื่อมีการเรียกใช้ postMessage โดยปลายทางอีกด้านของพอร์ต
ฟังก์ชัน
onMessage.addListenerจะมีลักษณะดังนี้(callback: function) => {...}
-
ผู้ส่ง
MessageSender ไม่บังคับ
พร็อพเพอร์ตี้นี้จะปรากฏเฉพาะในพอร์ตที่ส่งไปยัง Listener onConnect / onConnectExternal / onConnectNative
-
ตัดการเชื่อมต่อ
void
ถอดพอร์ตออกทันที การเรียก
disconnect()ในพอร์ตที่ยกเลิกการเชื่อมต่อแล้วจะไม่มีผลใดๆ เมื่อยกเลิกการเชื่อมต่อพอร์ต ระบบจะไม่ส่งเหตุการณ์ใหม่ไปยังพอร์ตนี้ฟังก์ชัน
disconnectจะมีลักษณะดังนี้() => {...} -
postMessage
void
ส่งข้อความไปยังปลายทางอีกด้านของพอร์ต หากพอร์ตถูกตัดการเชื่อมต่อ ระบบจะแสดงข้อผิดพลาด
ฟังก์ชัน
postMessageจะมีลักษณะดังนี้(message: any) => {...}
-
ข้อความ
ใดๆ
Chrome 52 ขึ้นไป browser.* ตั้งแต่ Chrome 148ข้อความที่จะส่ง ออบเจ็กต์นี้ควรเป็น JSON-ifiable
-
RequestUpdateCheckStatus
ผลลัพธ์ของการตรวจสอบการอัปเดต
ค่าแจกแจง
"throttled"
ระบุว่าการตรวจสอบสถานะถูกจำกัด ซึ่งอาจเกิดขึ้นหลังจากตรวจสอบซ้ำๆ ภายในระยะเวลาสั้นๆ
"no_update"
ระบุว่าไม่มีการอัปเดตที่พร้อมให้ติดตั้ง
"update_available"
ระบุว่ามีการอัปเดตที่พร้อมให้ติดตั้ง
พร็อพเพอร์ตี้
id
รหัสของส่วนขยาย/แอป
ประเภท
สตริง
lastError
ป้อนข้อความแสดงข้อผิดพลาดหากเรียกใช้ฟังก์ชัน API ไม่สำเร็จ หรือไม่ระบุไว้ ซึ่งจะกำหนดไว้ภายในขอบเขตของ Callback ของฟังก์ชันนั้นเท่านั้น หากเกิดข้อผิดพลาด แต่ไม่มีการเข้าถึง runtime.lastError ภายใน Callback ระบบจะบันทึกข้อความลงในคอนโซลที่แสดงฟังก์ชัน API ที่ทำให้เกิดข้อผิดพลาด ฟังก์ชัน API ที่แสดงผล Promise จะไม่ตั้งค่าพร็อพเพอร์ตี้นี้
ประเภท
ออบเจ็กต์
พร็อพเพอร์ตี้
-
ข้อความ
สตริง ไม่บังคับ
รายละเอียดเกี่ยวกับข้อผิดพลาดที่เกิดขึ้น
เมธอด
connect()
browser.runtime.connect(
extensionId?: string,
connectInfo?: object,
): Port
พยายามเชื่อมต่อ Listener ภายในส่วนขยาย (เช่น หน้าพื้นหลัง) หรือส่วนขยาย/แอปอื่นๆ ซึ่งจะเป็นประโยชน์สำหรับสคริปต์เนื้อหาที่เชื่อมต่อกับกระบวนการของส่วนขยาย การสื่อสารระหว่างแอป/ส่วนขยาย และการรับส่งข้อความบนเว็บ โปรดทราบว่าการดำเนินการนี้จะไม่เชื่อมต่อกับ Listener ใดๆ ในสคริปต์เนื้อหา ส่วนขยายอาจเชื่อมต่อกับสคริปต์เนื้อหาที่ฝังในแท็บผ่าน tabs.connect
พารามิเตอร์
-
extensionId
สตริง ไม่บังคับ
รหัสของส่วนขยายที่จะเชื่อมต่อ หากละเว้น ระบบจะพยายามเชื่อมต่อกับส่วนขยายของคุณเอง ต้องระบุหากส่งข้อความจากหน้าเว็บสำหรับการรับส่งข้อความในเว็บ
-
connectInfo
object ไม่บังคับ
-
includeTlsChannelId
บูลีน ไม่บังคับ
ระบุว่าจะส่งรหัสช่อง TLS ไปยัง onConnectExternal สำหรับกระบวนการที่รอฟังเหตุการณ์การเชื่อมต่อหรือไม่
-
name
สตริง ไม่บังคับ
ระบบจะส่งไปยัง onConnect สำหรับกระบวนการที่รอฟังเหตุการณ์การเชื่อมต่อ
-
การคืนสินค้า
-
พอร์ตที่ใช้รับส่งข้อความได้ ระบบจะเริ่มเหตุการณ์ onDisconnect ของพอร์ตหากไม่มีส่วนขยาย
connectNative()
browser.runtime.connectNative(
application: string,
): Port
เชื่อมต่อกับแอปพลิเคชันแบบเนทีฟในเครื่องโฮสต์ วิธีนี้ต้องใช้สิทธิ์ "nativeMessaging" ดูข้อมูลเพิ่มเติมได้ที่การรับส่งข้อความแบบเนทีฟ
พารามิเตอร์
-
แอปพลิเคชัน
สตริง
ชื่อของแอปพลิเคชันที่ลงทะเบียนไว้เพื่อเชื่อมต่อ
การคืนสินค้า
-
พอร์ตที่สามารถรับส่งข้อความด้วยแอปพลิเคชันได้
getBackgroundPage()
browser.runtime.getBackgroundPage(): Promise<Window | undefined>
หน้าพื้นหลังไม่มีอยู่ในส่วนขยาย MV3
ดึงข้อมูลออบเจ็กต์ JavaScript "window" สำหรับหน้าพื้นหลังที่ทำงานภายในส่วนขยาย/แอปปัจจุบัน หากหน้าพื้นหลังเป็นหน้าเหตุการณ์ ระบบจะตรวจสอบว่ามีการโหลดหน้าดังกล่าวก่อนเรียกใช้ Callback หากไม่มีหน้าเบื้องหลัง ระบบจะตั้งค่าข้อผิดพลาด
การคืนสินค้า
-
Promise<Window | undefined>
Chrome 99 ขึ้นไป browser.* ตั้งแต่ Chrome 148
getContexts()
browser.runtime.getContexts(
filter: ContextFilter,
): Promise<ExtensionContext[]>
ดึงข้อมูลเกี่ยวกับบริบทที่ใช้งานอยู่ซึ่งเชื่อมโยงกับส่วนขยายนี้
พารามิเตอร์
-
ตัวกรอง
ตัวกรองเพื่อค้นหาบริบทที่ตรงกัน บริบทจะตรงกันหากตรงกับช่องที่ระบุทั้งหมดในตัวกรอง ช่องที่ไม่ได้ระบุในตัวกรองจะตรงกับบริบททั้งหมด
การคืนสินค้า
-
Promise<ExtensionContext[]>
Promise ที่แก้ไขด้วยบริบทที่ตรงกัน (หากมี)
getManifest()
browser.runtime.getManifest(): object
แสดงรายละเอียดเกี่ยวกับแอปหรือส่วนขยายจากไฟล์ Manifest ออบเจ็กต์ที่แสดงผลคือการเรียงอันดับของไฟล์ Manifest แบบสมบูรณ์
การคืนสินค้า
-
ออบเจ็กต์
รายละเอียดไฟล์ Manifest
getPackageDirectoryEntry()
browser.runtime.getPackageDirectoryEntry(): Promise<DirectoryEntry>
แสดงผล DirectoryEntry สำหรับไดเรกทอรีแพ็กเกจ
การคืนสินค้า
-
Promise<DirectoryEntry>
Chrome 122 ขึ้นไป browser.* ตั้งแต่ Chrome 148
getPlatformInfo()
browser.runtime.getPlatformInfo(): Promise<PlatformInfo>
แสดงข้อมูลเกี่ยวกับแพลตฟอร์มปัจจุบัน
การคืนสินค้า
-
Promise<PlatformInfo>
Chrome 99 ขึ้นไป browser.* ตั้งแต่ Chrome 148Promise ที่แสดงผลข้อมูลเกี่ยวกับแพลตฟอร์มปัจจุบัน
getURL()
browser.runtime.getURL(
path: string,
): string
แปลง Relative Path ภายในไดเรกทอรีการติดตั้งแอป/ส่วนขยายเป็น URL แบบเต็มที่ถูกต้อง
พารามิเตอร์
-
เส้นทาง
สตริง
เส้นทางไปยังทรัพยากรภายในแอป/ส่วนขยายที่แสดงโดยสัมพันธ์กับไดเรกทอรีการติดตั้ง
การคืนสินค้า
-
สตริง
URL ที่สมบูรณ์ในตัวเองของแหล่งข้อมูล
getVersion()
browser.runtime.getVersion(): string
แสดงผลเวอร์ชันของส่วนขยายตามที่ประกาศไว้ในไฟล์ Manifest
การคืนสินค้า
-
สตริง
เวอร์ชันของส่วนขยาย
openOptionsPage()
browser.runtime.openOptionsPage(): Promise<void>
เปิดหน้าตัวเลือกของส่วนขยาย หากเป็นไปได้
ลักษณะการทำงานที่แน่นอนอาจขึ้นอยู่กับคีย์ options_ui หรือ options_page ของไฟล์ Manifest หรือสิ่งที่ Chrome รองรับในขณะนั้น เช่น หน้าเว็บอาจเปิดในแท็บใหม่ ภายใน chrome://extensions ภายในแอป หรืออาจโฟกัสที่หน้าตัวเลือกที่เปิดอยู่ และจะไม่ทำให้หน้าผู้โทรโหลดซ้ำ
หากส่วนขยายของคุณไม่ได้ประกาศหน้าตัวเลือก หรือ Chrome สร้างหน้าตัวเลือกไม่สำเร็จเนื่องจากสาเหตุอื่น Callback จะตั้งค่า lastError
การคืนสินค้า
-
Promise<void>
Chrome 99 ขึ้นไป browser.* ตั้งแต่ Chrome 148
reload()
browser.runtime.reload(): void
โหลดแอปหรือส่วนขยายซ้ำ โหมดคีออสก์ไม่รองรับวิธีนี้ สำหรับโหมดคีออสก์ ให้ใช้เมธอด chrome.runtime.restart()
requestUpdateCheck()
browser.runtime.requestUpdateCheck(): Promise<object>
ขอให้ตรวจสอบการอัปเดตทันทีสำหรับแอป/ส่วนขยายนี้
สำคัญ: ส่วนขยาย/แอปส่วนใหญ่ไม่ควรใช้วิธีนี้ เนื่องจาก Chrome จะตรวจสอบโดยอัตโนมัติทุกๆ 2-3 ชั่วโมงอยู่แล้ว และคุณสามารถรอฟังเหตุการณ์ runtime.onUpdateAvailable ได้โดยไม่ต้องเรียกใช้ requestUpdateCheck
วิธีนี้เหมาะที่จะเรียกใช้ในสถานการณ์ที่จำกัดมากเท่านั้น เช่น หากส่วนขยายของคุณสื่อสารกับบริการแบ็กเอนด์ และบริการแบ็กเอนด์ระบุว่าเวอร์ชันส่วนขยายของไคลเอ็นต์ล้าสมัยมาก และคุณต้องการแจ้งให้ผู้ใช้อัปเดต การใช้ requestUpdateCheck อื่นๆ ส่วนใหญ่ เช่น การเรียกใช้โดยไม่มีเงื่อนไขตามตัวจับเวลาที่เกิดซ้ำ อาจทำให้ทรัพยากรของไคลเอ็นต์ เครือข่าย และเซิร์ฟเวอร์สูญเปล่าเท่านั้น
หมายเหตุ: เมื่อเรียกใช้ด้วย Callback ฟังก์ชันนี้จะแสดงผลพร็อพเพอร์ตี้ 2 รายการเป็นอาร์กิวเมนต์แยกต่างหากที่ส่งไปยัง Callback แทนที่จะแสดงผลออบเจ็กต์
การคืนสินค้า
-
Promise<object>
Chrome 109 ขึ้นไป browser.* ตั้งแต่ Chrome 148
restart()
browser.runtime.restart(): void
รีสตาร์ทอุปกรณ์ ChromeOS เมื่อแอปทำงานในโหมดคีออสก์ ไม่เช่นนั้น ระบบจะไม่ดำเนินการใดๆ
restartAfterDelay()
browser.runtime.restartAfterDelay(
seconds: number,
): Promise<void>
รีสตาร์ทอุปกรณ์ ChromeOS เมื่อแอปทำงานในโหมดคีออสก์หลังจากผ่านไปตามจำนวนวินาทีที่ระบุ หากมีการเรียกอีกครั้งก่อนที่เวลาจะสิ้นสุดลง การรีบูตจะล่าช้า หากเรียกใช้ด้วยค่า -1 ระบบจะยกเลิกการรีบูต ซึ่งจะไม่มีผลในโหมดที่ไม่ใช่คีออสก์ อนุญาตให้เรียกใช้ซ้ำได้โดยส่วนขยายแรกที่เรียกใช้ API นี้เท่านั้น
พารามิเตอร์
-
วินาที
ตัวเลข
เวลาที่ต้องรอก่อนรีบูตอุปกรณ์ (หน่วยเป็นวินาที) หรือ -1 เพื่อยกเลิกการรีบูตที่กำหนดเวลาไว้
การคืนสินค้า
-
Promise<void>
Chrome 99 ขึ้นไป browser.* ตั้งแต่ Chrome 148Promise ที่จะได้รับการแก้ไขเมื่อกำหนดเวลาคำขอรีสตาร์ทใหม่เรียบร้อยแล้ว
sendMessage()
browser.runtime.sendMessage(
extensionId?: string,
message: any,
options?: object,
): Promise<any>
ส่งข้อความเดียวไปยัง Listener เหตุการณ์ ภายในส่วนขยายของคุณหรือส่วนขยาย/แอปอื่น คล้ายกับ runtime.connect แต่จะส่งข้อความเดียวเท่านั้น โดยมีการตอบกลับที่ไม่บังคับ หากส่งไปยังส่วนขยายของคุณ ระบบจะเริ่มเหตุการณ์ runtime.onMessage ในทุกเฟรมของส่วนขยาย (ยกเว้นเฟรมของผู้ส่ง) หรือ runtime.onMessageExternal หากเป็นส่วนขยายอื่น โปรดทราบว่าส่วนขยายจะส่งข้อความไปยังสคริปต์เนื้อหาโดยใช้วิธีนี้ไม่ได้ หากต้องการส่งข้อความไปยังสคริปต์เนื้อหา ให้ใช้ tabs.sendMessage
พารามิเตอร์
-
extensionId
สตริง ไม่บังคับ
รหัสของส่วนขยายที่จะส่งข้อความถึง หากละเว้น ระบบจะส่งข้อความไปยังส่วนขยาย/แอปของคุณเอง ต้องระบุหากส่งข้อความจากหน้าเว็บสำหรับการรับส่งข้อความบนเว็บ
-
ข้อความ
ใดๆ
ข้อความที่จะส่ง ข้อความนี้ควรเป็นออบเจ็กต์ที่แปลงเป็น JSON ได้
-
ตัวเลือก
object ไม่บังคับ
-
includeTlsChannelId
บูลีน ไม่บังคับ
ระบุว่าจะส่งรหัสช่อง TLS ไปยัง onMessageExternal สำหรับกระบวนการที่รอฟังเหตุการณ์การเชื่อมต่อหรือไม่
-
การคืนสินค้า
-
Promise<any>
Chrome 99 ขึ้นไป browser.* ตั้งแต่ Chrome 148เพิ่มการรองรับ Promise สำหรับบริบทส่วนขยายใน Chrome 99 เมื่อสื่อสารจากหน้าเว็บไปยังส่วนขยาย คุณจะใช้ Promise ได้ตั้งแต่ Chrome 118 เป็นต้นไป
sendNativeMessage()
browser.runtime.sendNativeMessage(
application: string,
message: object,
): Promise<any>
ส่งข้อความเดียวไปยังแอปพลิเคชันแบบเนทีฟ วิธีนี้ต้องใช้สิทธิ์ "nativeMessaging"
พารามิเตอร์
-
แอปพลิเคชัน
สตริง
ชื่อของโฮสต์การรับส่งข้อความในเครื่องหรือรายละเอียดเป้าหมาย
-
ข้อความ
ออบเจ็กต์
ข้อความที่จะส่งไปยังโฮสต์การรับส่งข้อความในเครื่อง
การคืนสินค้า
-
Promise<any>
Chrome 99 ขึ้นไป browser.* ตั้งแต่ Chrome 148
setUninstallURL()
browser.runtime.setUninstallURL(
url: string,
): Promise<void>
ตั้งค่า URL ที่จะเข้าชมเมื่อถอนการติดตั้ง ซึ่งอาจใช้เพื่อล้างข้อมูลฝั่งเซิร์ฟเวอร์ ทำการวิเคราะห์ และใช้แบบสำรวจ สูงสุด 1,023 อักขระ
พารามิเตอร์
-
URL
สตริง
URL ที่จะเปิดหลังจากถอนการติดตั้งส่วนขยาย URL นี้ต้องมีรูปแบบ http: หรือ https: ตั้งค่าสตริงว่างเพื่อไม่ให้เปิดแท็บใหม่เมื่อถอนการติดตั้ง
การคืนสินค้า
-
Promise<void>
Chrome 99 ขึ้นไป browser.* ตั้งแต่ Chrome 148Promise ที่จะได้รับการแก้ไขเมื่อตั้งค่า URL การถอนการติดตั้งแล้ว หาก URL ที่ระบุไม่ถูกต้อง ระบบจะปฏิเสธ Promise
กิจกรรม
onBrowserUpdateAvailable
browser.runtime.onBrowserUpdateAvailable.addListener(
callback: function,
)
โปรดใช้ runtime.onRestartRequired
เริ่มทำงานเมื่อมีการอัปเดต Chrome แต่ไม่ได้ติดตั้งทันทีเนื่องจากต้องรีสตาร์ทเบราว์เซอร์
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้() => void
onConnect
browser.runtime.onConnect.addListener(
callback: function,
)
เริ่มทำงานเมื่อมีการเชื่อมต่อจากกระบวนการของส่วนขยายหรือสคริปต์เนื้อหา (โดย runtime.connect)
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(port: Port) => void
-
พอร์ต
-
onConnectExternal
browser.runtime.onConnectExternal.addListener(
callback: function,
)
เริ่มทำงานเมื่อมีการเชื่อมต่อจากส่วนขยายอื่น (โดย runtime.connect) หรือจากเว็บไซต์ที่เชื่อมต่อภายนอกได้
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(port: Port) => void
-
พอร์ต
-
onConnectNative
browser.runtime.onConnectNative.addListener(
callback: function,
)
เริ่มทำงานเมื่อมีการเชื่อมต่อจากแอปพลิเคชันแบบเนทีฟ เหตุการณ์นี้ต้องใช้สิทธิ์ "nativeMessaging" โดยจะรองรับเฉพาะใน ChromeOS เท่านั้น
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(port: Port) => void
-
พอร์ต
-
onEnabled
browser.runtime.onEnabled.addListener(
callback: function,
)
เริ่มทำงานเมื่อส่วนขยายเปลี่ยนจากสถานะปิดใช้เป็นสถานะเปิดใช้
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้() => void
onExtensionLoaded
browser.runtime.onExtensionLoaded.addListener(
callback: function,
)
เริ่มทำงานเมื่อมีการเพิ่มส่วนขยายลงในชุดส่วนขยายที่ใช้งานอยู่ ซึ่งอาจเกิดขึ้นได้ในหลายสถานการณ์ เช่น เมื่อติดตั้งส่วนขยายเป็นครั้งแรก อัปเดตเป็นเวอร์ชันใหม่ เปิดใช้อีกครั้งหลังจากปิดใช้ โหลดซ้ำ โหลดระหว่างการเริ่มต้นเบราว์เซอร์ หรือโหลดเมื่ออัปเดตเบราว์เซอร์เป็นเวอร์ชันใหม่
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(details: ExtensionLoadDetails) => void
-
รายละเอียด
-
onInstalled
browser.runtime.onInstalled.addListener(
callback: function,
)
เริ่มทำงานเมื่อติดตั้งส่วนขยายเป็นครั้งแรก เมื่ออัปเดตส่วนขยายเป็นเวอร์ชันใหม่ และเมื่ออัปเดต Chrome เป็นเวอร์ชันใหม่
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(details: object) => void
-
รายละเอียด
ออบเจ็กต์
-
id
สตริง ไม่บังคับ
ระบุรหัสของส่วนขยายโมดูลที่แชร์ที่นำเข้าซึ่งได้รับการอัปเดต ข้อมูลนี้จะแสดงต่อเมื่อ "reason" เป็น "shared_module_update" เท่านั้น
-
previousVersion
สตริง ไม่บังคับ
ระบุเวอร์ชันก่อนหน้าของส่วนขยายที่เพิ่งอัปเดต ซึ่งจะปรากฏเฉพาะในกรณีที่ "reason" เป็น "update"
-
เหตุผล
เหตุผลที่ส่งเหตุการณ์นี้
-
-
onMessage
browser.runtime.onMessage.addListener(
callback: function,
)
เริ่มทำงานเมื่อมีการส่งข้อความจาก runtime.sendMessage หรือ tabs.sendMessage
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(message: any, sender: MessageSender, sendResponse: function) => boolean | Promise<any> | undefined
-
ข้อความ
ใดๆ
-
ผู้ส่ง
-
sendResponse
ฟังก์ชัน
พารามิเตอร์
sendResponseจะมีลักษณะดังนี้(response?: any) => void
-
การตอบกลับ
ไม่บังคับ
การตอบกลับเพื่อส่งคืนไปยังผู้ส่งข้อความ
-
-
returns
boolean | Promise<any> | undefined
-
onMessageExternal
browser.runtime.onMessageExternal.addListener(
callback: function,
)
เริ่มทำงานเมื่อมีการส่งข้อความจากส่วนขยายอื่น (โดย runtime.sendMessage) ใช้ในสคริปต์เนื้อหาไม่ได้
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(message: any, sender: MessageSender, sendResponse: function) => boolean | Promise<any> | undefined
-
ข้อความ
ใดๆ
-
ผู้ส่ง
-
sendResponse
ฟังก์ชัน
พารามิเตอร์
sendResponseจะมีลักษณะดังนี้(response?: any) => void
-
การตอบกลับ
ไม่บังคับ
การตอบกลับเพื่อส่งคืนไปยังผู้ส่งข้อความ
-
-
returns
boolean | Promise<any> | undefined
-
onRestartRequired
browser.runtime.onRestartRequired.addListener(
callback: function,
)
เริ่มทำงานเมื่อต้องรีสตาร์ทแอปหรืออุปกรณ์ที่แอปทำงานอยู่ แอปควรปิดหน้าต่างทั้งหมดโดยเร็วที่สุดเพื่อให้รีสตาร์ทได้ หากแอปไม่ดำเนินการใดๆ ระบบจะบังคับให้รีสตาร์ทหลังจากระยะเวลาผ่อนผัน 24 ชั่วโมงผ่านไป ปัจจุบันเหตุการณ์นี้จะเริ่มทำงานสำหรับแอปคีออสก์ของ ChromeOS เท่านั้น
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(reason: OnRestartRequiredReason) => void
-
เหตุผล
-
onStartup
browser.runtime.onStartup.addListener(
callback: function,
)
เริ่มทำงานเมื่อโปรไฟล์ที่ติดตั้งส่วนขยายนี้เริ่มทำงานเป็นครั้งแรก เหตุการณ์นี้จะไม่เริ่มทำงานเมื่อโปรไฟล์ไม่ระบุตัวตนเริ่มต้นขึ้น แม้ว่าส่วนขยายนี้จะทำงานในโหมดไม่ระบุตัวตนแบบ "แยก" ก็ตาม
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้() => void
onSuspend
browser.runtime.onSuspend.addListener(
callback: function,
)
ส่งไปยังหน้าเหตุการณ์ก่อนที่จะยกเลิกการโหลด ซึ่งจะช่วยให้ส่วนขยายมีโอกาสล้างข้อมูลบางอย่าง โปรดทราบว่าเนื่องจากหน้าเว็บกำลังยกเลิกการโหลด จึงไม่รับประกันว่าการดำเนินการแบบอะซิงโครนัสที่เริ่มขึ้นขณะจัดการเหตุการณ์นี้จะเสร็จสมบูรณ์ หากมีกิจกรรมเพิ่มเติมสำหรับหน้ากิจกรรมเกิดขึ้นก่อนที่จะยกเลิกการโหลด ระบบจะส่งเหตุการณ์ onSuspendCanceled และหน้าเว็บจะไม่ถูกยกเลิกการโหลด
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้() => void
onSuspendCanceled
browser.runtime.onSuspendCanceled.addListener(
callback: function,
)
ส่งหลังจาก onSuspend เพื่อระบุว่าแอปจะไม่ถูกยกเลิกการโหลด
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้() => void
onUpdateAvailable
browser.runtime.onUpdateAvailable.addListener(
callback: function,
)
เริ่มทำงานเมื่อมีการอัปเดต แต่ไม่ได้ติดตั้งทันทีเนื่องจากแอปกำลังทำงานอยู่ หากคุณไม่ดำเนินการใดๆ ระบบจะติดตั้งการอัปเดตในครั้งถัดไปที่หน้าเบื้องหลังถูกยกเลิกการโหลด หากต้องการให้ติดตั้งเร็วขึ้น คุณสามารถเรียกใช้ chrome.runtime.reload() อย่างชัดแจ้ง หากส่วนขยายของคุณใช้หน้าเบื้องหลังแบบถาวร แน่นอนว่าหน้าเบื้องหลังจะไม่ถูกยกเลิกการโหลด ดังนั้นหากคุณไม่เรียกใช้ chrome.runtime.reload() ด้วยตนเองเพื่อตอบสนองต่อเหตุการณ์นี้ ระบบจะไม่ติดตั้งการอัปเดตจนกว่า Chrome จะรีสตาร์ทในครั้งถัดไป หากไม่มีเครื่องจัดการที่คอยฟังเหตุการณ์นี้ และส่วนขยายของคุณมีหน้าเบื้องหลังแบบถาวร ส่วนขยายจะทำงานเหมือนกับว่ามีการเรียกใช้ chrome.runtime.reload() เพื่อตอบสนองต่อเหตุการณ์นี้
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(details: object) => void
-
รายละเอียด
ออบเจ็กต์
-
เวอร์ชัน
สตริง
หมายเลขเวอร์ชันของการอัปเดตที่พร้อมใช้งาน
-
-
onUserScriptConnect
browser.runtime.onUserScriptConnect.addListener(
callback: function,
)
เริ่มทำงานเมื่อมีการเชื่อมต่อจากสคริปต์ของผู้ใช้จากส่วนขยายนี้
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(port: Port) => void
-
พอร์ต
-
onUserScriptMessage
browser.runtime.onUserScriptMessage.addListener(
callback: function,
)
เริ่มทำงานเมื่อมีการส่งข้อความจากสคริปต์ของผู้ใช้ที่เชื่อมโยงกับส่วนขยายเดียวกัน
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(message: any, sender: MessageSender, sendResponse: function) => boolean | undefined
-
ข้อความ
ใดๆ
-
ผู้ส่ง
-
sendResponse
ฟังก์ชัน
พารามิเตอร์
sendResponseจะมีลักษณะดังนี้(response?: any) => void
-
การตอบกลับ
ไม่บังคับ
การตอบกลับเพื่อส่งคืนไปยังผู้ส่งข้อความ
-
-
returns
boolean | undefined
-