chrome.runtime

คำอธิบาย

ใช้ chrome.runtime API เพื่อดึงข้อมูล Service Worker, แสดงรายละเอียดเกี่ยวกับไฟล์ Manifest รวมถึงรอและตอบสนองต่อเหตุการณ์ในวงจรของส่วนขยาย คุณยังสามารถใช้ API นี้เพื่อแปลงเส้นทางที่เกี่ยวข้องของ URL เป็น URL ที่สมบูรณ์ในตัวเอง

ภาพรวม

Runtime API มีวิธีการสนับสนุนฟังก์ชันต่างๆ ที่ส่วนขยายของคุณ สามารถใช้สิ่งต่อไปนี้

การส่งข้อความ
ส่วนขยายสามารถสื่อสารกับบริบทที่แตกต่างกันภายในส่วนขยายและกับส่วนขยายอื่นๆ โดยใช้วิธีการและเหตุการณ์ต่อไปนี้ connect(), onConnect onConnectExternal, sendMessage(), onMessage และ onMessageExternal. นอกจากนี้ ส่วนขยายของคุณยังสามารถส่งข้อความไปยังแอปพลิเคชันที่มาพร้อมเครื่องบนอุปกรณ์ของผู้ใช้โดยใช้ connectNative() และ sendNativeMessage()
การเข้าถึงข้อมูลเมตาของส่วนขยายและแพลตฟอร์ม
วิธีการเหล่านี้ช่วยให้คุณเรียกข้อมูลเมตาเฉพาะหลายรายการเกี่ยวกับส่วนขยายและ ที่มีการจัดการครบวงจรได้เลย วิธีการในหมวดหมู่นี้ ได้แก่ getManifest() และ getPlatformInfo().
การจัดการวงจรและตัวเลือกส่วนขยาย
พร็อพเพอร์ตี้เหล่านี้ให้คุณดำเนินการบางอย่างกับส่วนขยายและแสดงหน้าตัวเลือกได้ วิธีการและเหตุการณ์ในหมวดหมู่นี้รวมถึง onInstalled onStartup openOptionsPage(), reload(), requestUpdateCheck() และ setUninstallURL()
ยูทิลิตีของตัวช่วย
วิธีการเหล่านี้จะให้ประโยชน์ต่างๆ เช่น การแปลงการนำเสนอทรัพยากรภายในเป็น รูปแบบภายนอก วิธีการในหมวดหมู่นี้ ได้แก่ getURL()
ยูทิลิตีโหมดคีออสก์
วิธีการเหล่านี้ใช้ได้ใน ChromeOS เท่านั้น และมีไว้เพื่อรองรับการใช้งานคีออสก์เป็นหลัก วิธีการในหมวดหมู่นี้ ได้แก่ restart และ restartAfterDelay

สิทธิ์

เมธอดส่วนใหญ่ใน Runtime API จะไม่ต้องการสิทธิ์ใดๆ ยกเว้น sendNativeMessage และ connectNative ซึ่ง ต้องมีสิทธิ์ nativeMessaging

ไฟล์ Manifest

ตัวอย่างต่อไปนี้แสดงวิธีประกาศสิทธิ์ nativeMessaging ในไฟล์ Manifest

manifest.json:

{
  "name": "My extension",
  ...
  "permissions": [
    "nativeMessaging"
  ],
  ...
}

กรณีการใช้งาน

เพิ่มรูปภาพลงในหน้าเว็บ

หน้าเว็บจะต้องระบุ 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 = chrome.runtime.getURL('logo.png');
  document.body.append(img);
}

ส่งข้อมูลจาก Service Worker ไปยังสคริปต์เนื้อหา

เป็นเรื่องปกติที่สคริปต์เนื้อหาของส่วนขยายจะต้องการข้อมูลที่ส่วนอื่นๆ ของส่วนขยายจัดการ เช่น Service Worker ซึ่งคล้ายกับหน้าต่างเบราว์เซอร์ 2 หน้าต่างที่เปิดในหน้าเว็บเดียวกัน สองบริบทไม่สามารถเข้าถึงค่าซึ่งกันและกันได้โดยตรง แต่ส่วนขยายสามารถใช้ข้อความ ผ่านเพื่อประสานงานในบริบทต่างๆ เหล่านี้

ในตัวอย่างนี้ สคริปต์เนื้อหาต้องการข้อมูลบางอย่างจาก Service Worker ของส่วนขยายเพื่อ เริ่มต้น UI หากต้องการรับข้อมูลนี้ ระบบจะส่งผ่านทางข้อความ get-user-data ไปยัง Service Worker และ แอปตอบสนองด้วยสำเนาข้อมูลของผู้ใช้

content.js:

// 1. Send a message to the service worker requesting the user's data
chrome.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);
});

background.js:

// Example of a simple user data object
const user = {
  username: 'demo-user'
};

chrome.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:

chrome.runtime.onInstalled.addListener(details => {
  if (details.reason === chrome.runtime.OnInstalledReason.INSTALL) {
    chrome.runtime.setUninstallURL('https://example.com/extension-survey');
  }
});

ตัวอย่างส่วนขยาย

ดูตัวอย่างเพิ่มเติมเกี่ยวกับ Runtime API ได้ในไฟล์ Manifest V3 - การสาธิตทรัพยากรที่เข้าถึงได้บนเว็บ

ประเภท

ContextFilter

Chrome 114 ขึ้นไป

ตัวกรองที่จับคู่กับบริบทส่วนขยายบางรายการ บริบทที่ตรงกันต้องตรงกับตัวกรองที่ระบุทั้งหมด ตัวกรองที่ไม่ได้ระบุจะตรงกับบริบทที่มีอยู่ทั้งหมด ดังนั้น ตัวกรอง "{}" จะตรงกับบริบทที่มีอยู่ทั้งหมด

พร็อพเพอร์ตี้

  • contextIds

    string[] ไม่บังคับ

  • contextTypes

    ContextType[] ไม่บังคับ

  • documentIds

    string[] ไม่บังคับ

  • documentOrigins

    string[] ไม่บังคับ

  • documentUrls

    string[] ไม่บังคับ

  • frameIds

    number[] ไม่บังคับ

  • ไม่ระบุตัวตน

    บูลีน ไม่บังคับ

  • tabIds

    number[] ไม่บังคับ

  • windowIds

    number[] ไม่บังคับ

ContextType

Chrome 114 ขึ้นไป

ค่าแจกแจง

"TAB"
ระบุประเภทบริบทเป็นแท็บ

"POPUP"
ระบุประเภทบริบทเป็นหน้าต่างป๊อปอัปของส่วนขยาย

"BACKGROUND"
ระบุประเภทบริบทในฐานะ Service Worker

"OFFSCREEN_DOCUMENT"
ระบุประเภทบริบทเป็นเอกสารนอกหน้าจอ

"SIDE_PANEL"
ระบุประเภทบริบทเป็นแผงด้านข้าง

ExtensionContext

Chrome 114 ขึ้นไป

บริบทที่โฮสต์เนื้อหาส่วนขยาย

พร็อพเพอร์ตี้

  • contextId

    สตริง

    ตัวระบุที่ไม่ซ้ำกันสำหรับบริบทนี้

  • contextType

    ประเภทบริบทที่เกี่ยวข้อง

  • documentId

    string ไม่บังคับ

    UUID สำหรับเอกสารที่เชื่อมโยงกับบริบทนี้ หรือไม่ระบุหากบริบทนี้โฮสต์ไม่ได้อยู่ในเอกสาร

  • documentOrigin

    string ไม่บังคับ

    ต้นทางของเอกสารที่เชื่อมโยงกับบริบทนี้ หรือไม่ระบุหากบริบทไม่ได้โฮสต์อยู่ในเอกสาร

  • documentUrl

    string ไม่บังคับ

    URL ของเอกสารที่เกี่ยวข้องกับบริบทนี้ หรือไม่ระบุหากบริบทไม่ได้โฮสต์อยู่ในเอกสาร

  • frameId

    ตัวเลข

    รหัสของเฟรมสำหรับบริบทนี้ หรือ -1 หากบริบทไม่ได้โฮสต์อยู่ในเฟรม

  • ไม่ระบุตัวตน

    boolean

    บริบทเชื่อมโยงกับโปรไฟล์ที่ไม่ระบุตัวตนหรือไม่

  • tabId

    ตัวเลข

    รหัสของแท็บสำหรับบริบทนี้ หรือ -1 หากบริบทนี้ไม่ได้โฮสต์อยู่ในแท็บ

  • windowId

    ตัวเลข

    รหัสของหน้าต่างสำหรับบริบทนี้ หรือ -1 หากบริบทนี้ไม่ได้โฮสต์ในหน้าต่าง

MessageSender

ออบเจ็กต์ที่มีข้อมูลเกี่ยวกับบริบทของสคริปต์ที่ส่งข้อความหรือคำขอ

พร็อพเพอร์ตี้

  • documentId

    string ไม่บังคับ

    Chrome 106 ขึ้นไป

    UUID ของเอกสารที่เปิดการเชื่อมต่อ

  • documentLifecycle

    string ไม่บังคับ

    Chrome 106 ขึ้นไป

    วงจรของเอกสารที่เปิดการเชื่อมต่อ ณ เวลาที่สร้างพอร์ต โปรดทราบว่าสถานะอายุการใช้งานของเอกสารอาจมีการเปลี่ยนแปลงตั้งแต่สร้างพอร์ต

  • frameId

    หมายเลข ไม่บังคับ

    เฟรมที่เปิดการเชื่อมต่อ 0 สำหรับเฟรมระดับบนสุด บวกสำหรับเฟรมย่อย การตั้งค่านี้จะตั้งค่าเมื่อมีการตั้งค่า tab เท่านั้น

  • id

    string ไม่บังคับ

    รหัสของส่วนขยายที่เปิดการเชื่อมต่อ (หากมี)

  • nativeApplication

    string ไม่บังคับ

    Chrome 74 ขึ้นไป

    ชื่อแอปพลิเคชันของระบบที่ใช้เปิดการเชื่อมต่อ (หากมี)

  • origin

    string ไม่บังคับ

    Chrome 80 ขึ้นไป

    ต้นทางของหน้าเว็บหรือเฟรมที่เปิดการเชื่อมต่อ ซึ่งอาจแตกต่างจากพร็อพเพอร์ตี้ของ URL (เช่น about:blank) หรือเป็นแบบทึบ (เช่น iframe ที่ทำแซนด์บ็อกซ์) ซึ่งมีประโยชน์ในการระบุว่าต้นทางเชื่อถือได้หรือไม่ หากเราไม่สามารถบอกจาก URL ได้ทันที

  • แท็บ

    Tab ไม่บังคับ

    tabs.Tab ที่เปิดการเชื่อมต่อ (หากมี) พร็อพเพอร์ตี้นี้จะแสดงเฉพาะเมื่อเปิดการเชื่อมต่อจากแท็บ (รวมถึงสคริปต์เนื้อหา) และจะแสดงเฉพาะในกรณีที่ผู้รับเป็นส่วนขยาย ไม่ใช่แอป

  • tlsChannelId

    string ไม่บังคับ

    รหัสช่อง TLS ของหน้าเว็บหรือเฟรมที่เปิดการเชื่อมต่อ หากมีการขอจากส่วนขยาย และหากมี

  • URL

    string ไม่บังคับ

    URL ของหน้าเว็บหรือเฟรมที่เปิดการเชื่อมต่อ หากผู้ส่งอยู่ใน iframe ก็จะเป็น URL ของ iframe ไม่ใช่ URL ของหน้าที่โฮสต์

OnInstalledReason

Chrome 44 ขึ้นไป

เหตุผลที่ส่งกิจกรรมนี้

ค่าแจกแจง

"install"
ระบุเหตุผลของเหตุการณ์ว่าเป็นการติดตั้ง

"update"
ระบุเหตุผลของเหตุการณ์เป็นการอัปเดตส่วนขยาย

&quot;chrome_update&quot;
ระบุเหตุผลที่เหตุการณ์เป็นการอัปเดต Chrome

"shared_module_update"
ระบุเหตุผลของกิจกรรมเป็นการอัปเดตโมดูลที่แชร์

OnRestartRequiredReason

Chrome 44 ขึ้นไป

เหตุผลที่ส่งเหตุการณ์ "app_update" ใช้เมื่อจำเป็นต้องรีสตาร์ทเนื่องจากแอปพลิเคชันได้รับการอัปเดตเป็นเวอร์ชันใหม่ "os_update" ใช้เมื่อจำเป็นต้องรีสตาร์ทเนื่องจากเบราว์เซอร์/ระบบปฏิบัติการได้รับการอัปเดตเป็นเวอร์ชันใหม่ "ตามกำหนดเวลา" ใช้เมื่อระบบทำงานเกินกว่าระยะเวลาทำงานที่ได้รับอนุญาตที่กำหนดไว้ในนโยบายองค์กร

ค่าแจกแจง

"app_update"
ระบุเหตุผลที่เหตุการณ์เป็นการอัปเดตแอป

&quot;os_update&quot;
ระบุเหตุผลของเหตุการณ์เป็นการอัปเดตระบบปฏิบัติการ

"periodic"
ระบุเหตุผลที่เกิดเหตุการณ์เป็นการรีสตาร์ทแอปเป็นระยะๆ

PlatformArch

Chrome 44 ขึ้นไป

สถาปัตยกรรมโปรเซสเซอร์ของเครื่อง

ค่าแจกแจง

"arm"
ระบุสถาปัตยกรรมของโปรเซสเซอร์เป็นแขน

"arm64"
ระบุสถาปัตยกรรมของโปรเซสเซอร์เป็น arm64

"x86-32"
ระบุสถาปัตยกรรมของโปรเซสเซอร์เป็น x86-32

"x86-64"
ระบุสถาปัตยกรรมของโปรเซสเซอร์เป็น x86-64

"mips"
ระบุสถาปัตยกรรมของโปรเซสเซอร์เป็น Mips

"mips64"
ระบุสถาปัตยกรรมของโปรเซสเซอร์เป็น mips64

PlatformInfo

ออบเจ็กต์ที่มีข้อมูลเกี่ยวกับแพลตฟอร์มปัจจุบัน

พร็อพเพอร์ตี้

  • โค้ง

    สถาปัตยกรรมโปรเซสเซอร์ของเครื่อง

  • nacl_arch

    สถาปัตยกรรมเนทีฟของไคลเอ็นต์ ซึ่งอาจแตกต่างจาก Arch ในบางแพลตฟอร์ม

  • ระบบปฏิบัติการ

    ระบบปฏิบัติการที่ Chrome ทำงานอยู่

PlatformNaclArch

Chrome 44 ขึ้นไป

สถาปัตยกรรมเนทีฟของไคลเอ็นต์ ซึ่งอาจแตกต่างจาก Arch ในบางแพลตฟอร์ม

ค่าแจกแจง

"arm"
ระบุสถาปัตยกรรมดั้งเดิมของไคลเอ็นต์เป็นสาขา

"x86-32"
ระบุสถาปัตยกรรมของ Native Client เป็น x86-32

"x86-64"
ระบุสถาปัตยกรรมของ Native Client เป็น x86-64

"mips"
ระบุสถาปัตยกรรมโฆษณาเนทีฟเป็น Mips

"mips64"
ระบุสถาปัตยกรรมเนทีฟของไคลเอ็นต์เป็น mips64

PlatformOs

Chrome 44 ขึ้นไป

ระบบปฏิบัติการที่ Chrome ทำงานอยู่

ค่าแจกแจง

"mac"
ระบุระบบปฏิบัติการ MacOS

"win"
ระบุระบบปฏิบัติการ Windows

"android"
ระบุระบบปฏิบัติการ Android

"cros"
ระบุระบบปฏิบัติการ Chrome

"linux"
ระบุระบบปฏิบัติการ Linux

&quot;openbsd&quot;
ระบุระบบปฏิบัติการ OpenBSD

"fuchsia"
ระบุระบบปฏิบัติการ Fuchsia

Port

ออบเจ็กต์ที่ช่วยให้มีการสื่อสารแบบ 2 ทางกับหน้าอื่นๆ ดูข้อมูลเพิ่มเติมที่การเชื่อมต่อที่ใช้ได้นาน

พร็อพเพอร์ตี้

  • ชื่อ

    สตริง

    ชื่อพอร์ต ตามที่ระบุไว้ในการเรียก runtime.connect

  • onDisconnect

    เหตุการณ์<functionvoid>

    เริ่มทำงานเมื่อถอดพอร์ตออกจากปลายสายอีกด้านหนึ่ง ระบบอาจตั้งค่า runtime.lastError หากพอร์ตถูกตัดการเชื่อมต่อเนื่องจากเกิดข้อผิดพลาด หากพอร์ตปิดด้วยยกเลิกการเชื่อมต่อ เหตุการณ์นี้จะเริ่มทำงานเท่านั้นที่ฝั่งอีกฝั่งหนึ่ง เหตุการณ์นี้เริ่มทํางานมากที่สุด 1 ครั้ง (ดูอายุการใช้งานพอร์ตเพิ่มเติม)

    ฟังก์ชัน onDisconnect.addListener มีลักษณะดังนี้

    (callback: function) => {...}

    • Callback

      ฟังก์ชัน

      พารามิเตอร์ callback มีลักษณะดังนี้

      (port: Port) => void

  • onMessage

    เหตุการณ์<functionvoid>

    เหตุการณ์นี้จะเกิดขึ้นเมื่อปลายอีกฝั่งของพอร์ตเรียกใช้ postMessage

    ฟังก์ชัน onMessage.addListener มีลักษณะดังนี้

    (callback: function) => {...}

    • Callback

      ฟังก์ชัน

      พารามิเตอร์ callback มีลักษณะดังนี้

      (message: any, port: Port) => void

  • ผู้ส่ง

    MessageSender ไม่บังคับ

    พร็อพเพอร์ตี้นี้จะแสดงเฉพาะในพอร์ตที่ส่งผ่านไปยัง Listener onConnect / onConnectExternal / onConnectNative

  • ยกเลิกการเชื่อมต่อ

    เป็นโมฆะ

    ยกเลิกการเชื่อมต่อพอร์ตทันที การเรียกใช้ disconnect() บนพอร์ตที่ไม่ได้เชื่อมต่ออยู่แล้วจะไม่มีผลใดๆ เมื่อยกเลิกการเชื่อมต่อพอร์ตแล้ว ระบบจะไม่ส่งกิจกรรมใหม่ไปยังพอร์ตนี้

    ฟังก์ชัน disconnect มีลักษณะดังนี้

    () => {...}

  • postMessage

    เป็นโมฆะ

    ส่งข้อความไปยังปลายอีกด้านของพอร์ต หากพอร์ตถูกตัดการเชื่อมต่อ จะเกิดข้อผิดพลาด

    ฟังก์ชัน postMessage มีลักษณะดังนี้

    (message: any) => {...}

    • ข้อความ

      ใดๆ

      Chrome 52 ขึ้นไป

      ข้อความที่จะส่ง ออบเจ็กต์นี้ควรอยู่ในรูปแบบ JSON ได้

RequestUpdateCheckStatus

Chrome 44 ขึ้นไป

ผลการตรวจสอบการอัปเดต

ค่าแจกแจง

"throttled"
ระบุว่าการตรวจสอบสถานะมีการควบคุม ซึ่งอาจเกิดขึ้นหลังจากการตรวจสอบซ้ำๆ ภายในระยะเวลาสั้นๆ

"no_update"
ระบุว่าไม่มีอัปเดตให้ติดตั้ง

"update_available"
ระบุว่ามีการอัปเดตที่พร้อมติดตั้ง

พร็อพเพอร์ตี้

id

รหัสของส่วนขยาย/แอป

ประเภท

สตริง

lastError

จะป้อนข้อมูลพร้อมกับข้อความแสดงข้อผิดพลาดหากเรียกใช้ฟังก์ชัน API ไม่สำเร็จ ไม่ระบุ โดยจะกำหนดภายในขอบเขตของ Callback ของฟังก์ชันดังกล่าวเท่านั้น หากเกิดข้อผิดพลาดขึ้น แต่ไม่สามารถเข้าถึง runtime.lastError ภายในการเรียกกลับ ข้อความจะถูกบันทึกลงในคอนโซลโดยระบุฟังก์ชัน API ที่ทำให้เกิดข้อผิดพลาด ฟังก์ชัน API ที่ให้คำมั่นสัญญาจะไม่ตั้งค่าพร็อพเพอร์ตี้นี้

ประเภท

ออบเจ็กต์

พร็อพเพอร์ตี้

  • ข้อความ

    string ไม่บังคับ

    รายละเอียดเกี่ยวกับข้อผิดพลาดที่เกิดขึ้น

เมธอด

connect()

chrome.runtime.connect(
  extensionId?: string,
  connectInfo?: object,
)

ความพยายามที่จะเชื่อมต่อผู้ฟังภายในส่วนขยาย (เช่น หน้าพื้นหลัง) หรือส่วนขยาย/แอปอื่นๆ ซึ่งจะเป็นประโยชน์สำหรับสคริปต์เนื้อหาที่เชื่อมต่อกับกระบวนการของส่วนขยาย การสื่อสารระหว่างแอป/ส่วนขยาย และการรับส่งข้อความในเว็บ โปรดทราบว่าการดำเนินการนี้ไม่ได้เชื่อมต่อกับ Listener ใดๆ ในสคริปต์เนื้อหา ส่วนขยายอาจเชื่อมต่อกับสคริปต์เนื้อหาที่ฝังอยู่ในแท็บผ่าน tabs.connect

พารามิเตอร์

  • extensionId

    string ไม่บังคับ

    รหัสของส่วนขยายที่จะเชื่อมต่อ หากไม่ระบุ ระบบจะลองเชื่อมต่อกับส่วนขยายของคุณเอง ต้องระบุหากส่งข้อความจากหน้าเว็บสำหรับการรับส่งข้อความในเว็บ

  • connectInfo

    ออบเจ็กต์ไม่บังคับ

    • includeTlsChannelId

      บูลีน ไม่บังคับ

      กำหนดว่าจะส่งผ่านรหัสช่อง TLS ไปยัง onConnectExternal สำหรับกระบวนการที่รอรับเหตุการณ์การเชื่อมต่อหรือไม่

    • ชื่อ

      string ไม่บังคับ

      แล้วระบบจะส่งผ่านไปยัง onConnect สำหรับกระบวนการที่รอรับเหตุการณ์การเชื่อมต่อ

การคืนสินค้า

  • พอร์ตที่ใช้รับส่งข้อความได้ เหตุการณ์ onDisconnect ของพอร์ตจะเริ่มทำงานหากไม่มีส่วนขยาย

connectNative()

chrome.runtime.connectNative(
  application: string,
)

เชื่อมต่อกับแอปพลิเคชันที่มาพร้อมเครื่องในเครื่องโฮสต์ วิธีนี้ต้องใช้สิทธิ์ "nativeMessaging" โปรดดูข้อมูลเพิ่มเติมที่การรับส่งข้อความในเครื่อง

พารามิเตอร์

  • แอปพลิเคชัน

    สตริง

    ชื่อแอปพลิเคชันที่ลงทะเบียนที่ต้องการเชื่อมต่อ

การคืนสินค้า

  • พอร์ตที่ใช้รับส่งข้อความด้วยแอปพลิเคชันได้

getBackgroundPage()

สัญญา เบื้องหน้าเท่านั้น
chrome.runtime.getBackgroundPage(
  callback?: function,
)

ดึงข้อมูล "window" ของ JavaScript สำหรับหน้าพื้นหลังที่ทำงานภายในส่วนขยาย/แอปปัจจุบัน หากหน้าพื้นหลังเป็นหน้ากิจกรรม ระบบจะตรวจสอบว่าหน้าดังกล่าวโหลดขึ้นมาก่อนที่จะเรียกใช้ Callback หากไม่มีหน้าเว็บพื้นหลัง แสดงว่ามีการตั้งค่าข้อผิดพลาด

พารามิเตอร์

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (backgroundPage?: Window) => void

    • backgroundPage

      กรอบเวลา ไม่บังคับ

      "หน้าต่าง" JavaScript สำหรับหน้าพื้นหลัง

การคืนสินค้า

  • Promise&lt;Window | ไม่ระบุ>

    Chrome 99 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

getContexts()

สัญญา Chrome 116 ขึ้นไป MV3 ขึ้นไป
chrome.runtime.getContexts(
  filter: ContextFilter,
  callback?: function,
)

ดึงข้อมูลเกี่ยวกับบริบทที่ใช้งานอยู่ซึ่งเชื่อมโยงกับส่วนขยายนี้

พารามิเตอร์

  • ตัวกรอง

    ตัวกรองสำหรับค้นหาบริบทที่ตรงกัน บริบทจะจับคู่หากตรงกับช่องที่ระบุในตัวกรองทั้งหมด ช่องที่ไม่มีการระบุในตัวกรองตรงกับบริบททั้งหมด

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (contexts: ExtensionContext[]) => void

    • บริบท

      บริบทที่ตรงกัน (หากมี)

การคืนสินค้า

  • Promise&lt;ExtensionContext[]&gt;

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

getManifest()

chrome.runtime.getManifest()

แสดงรายละเอียดเกี่ยวกับแอปหรือส่วนขยายจากไฟล์ Manifest ออบเจ็กต์ที่แสดงผลเป็นอนุกรมของไฟล์ Manifest แบบเต็ม

การคืนสินค้า

  • ออบเจ็กต์

    รายละเอียดของไฟล์ Manifest

getPackageDirectoryEntry()

สัญญา เบื้องหน้าเท่านั้น
chrome.runtime.getPackageDirectoryEntry(
  callback?: function,
)

แสดง DirectoryEntry สำหรับไดเรกทอรีแพ็กเกจ

พารามิเตอร์

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (directoryEntry: DirectoryEntry) => void

    • directoryEntry

      DirectoryEntry

การคืนสินค้า

  • Promise&lt;DirectoryEntry&gt;

    Chrome 122 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

getPlatformInfo()

สัญญา
chrome.runtime.getPlatformInfo(
  callback?: function,
)

แสดงข้อมูลเกี่ยวกับแพลตฟอร์มปัจจุบัน

พารามิเตอร์

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (platformInfo: PlatformInfo) => void

การคืนสินค้า

  • Promise&lt;PlatformInfo&gt;

    Chrome 99 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

getURL()

chrome.runtime.getURL(
  path: string,
)

แปลงเส้นทางแบบสัมพัทธ์ภายในไดเรกทอรีการติดตั้งแอป/ส่วนขยายเป็น URL ที่สมบูรณ์ในตัวเอง

พารามิเตอร์

  • เส้นทาง

    สตริง

    เส้นทางไปยังทรัพยากรภายในแอป/ส่วนขยายที่แสดงออกโดยสัมพันธ์กับไดเรกทอรีการติดตั้ง

การคืนสินค้า

  • สตริง

    URL ที่มีคุณสมบัติครบถ้วนไปยังทรัพยากร

openOptionsPage()

สัญญา
chrome.runtime.openOptionsPage(
  callback?: function,
)

เปิดหน้าตัวเลือกของส่วนขยายหากเป็นไปได้

ลักษณะการทำงานที่แน่นอนอาจขึ้นอยู่กับคีย์ [options_ui](https://developer.chrome.com/docs/extensions/develop/ui/options-page#embedded_options) หรือ [options_page](https://developer.chrome.com/docs/extensions/develop/ui/options-page#full_page) ของไฟล์ Manifest ของคุณหรือสิ่งที่ Chrome จะรองรับในเวลานั้น ตัวอย่างเช่น หน้าเว็บอาจเปิดในแท็บใหม่, ใน chrome://extensions, ภายในแอป หรืออาจแค่โฟกัสที่หน้าตัวเลือกที่เปิดอยู่ โดยจะไม่ทำให้หน้าผู้โทรโหลดซ้ำเลย

หากส่วนขยายไม่ประกาศหน้าตัวเลือก หรือ Chrome สร้างหน้าตัวเลือกไม่สำเร็จด้วยเหตุผลอื่น การเรียกกลับจะตั้งค่า lastError

พารามิเตอร์

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    () => void

การคืนสินค้า

  • คำมั่นสัญญา<โมฆะ>

    Chrome 99 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

reload()

chrome.runtime.reload()

โหลดแอปหรือส่วนขยายซ้ำ โหมดคีออสก์ไม่รองรับวิธีนี้ สำหรับโหมดคีออสก์ ให้ใช้เมธอด chrome.runtime.restart()

requestUpdateCheck()

สัญญา
chrome.runtime.requestUpdateCheck(
  callback?: function,
)

ขอให้ตรวจสอบการอัปเดตทันทีสำหรับแอป/ส่วนขยายนี้

สำคัญ: ส่วนขยาย/แอปส่วนใหญ่ไม่ควรใช้วิธีนี้ เนื่องจาก Chrome จะตรวจสอบอัตโนมัติทุก 2-3 ชั่วโมงอยู่แล้ว และคุณฟังเหตุการณ์ runtime.onUpdateAvailable ได้โดยไม่ต้องเรียกใช้ requestUpdateCheck

วิธีนี้เหมาะสำหรับการเรียกใช้ในสถานการณ์ที่จำกัดเท่านั้น เช่น หากส่วนขยายของคุณสื่อสารกับบริการแบ็กเอนด์ และบริการแบ็กเอนด์ระบุว่าเวอร์ชันส่วนขยายของไคลเอ็นต์ล้าสมัยมาก และคุณต้องการแจ้งให้ผู้ใช้อัปเดต การใช้ requestUpdateCheck ในรูปแบบอื่นๆ ส่วนใหญ่ เช่น การเรียกใช้โดยไม่มีเงื่อนไขตามการจับเวลาซ้ำๆ อาจเป็นเพียงการทำให้ทรัพยากรของไคลเอ็นต์ เครือข่าย และเซิร์ฟเวอร์สิ้นเปลืองเท่านั้น

หมายเหตุ: เมื่อเรียกใช้ด้วย Callback ฟังก์ชันนี้จะแสดงพร็อพเพอร์ตี้ทั้ง 2 รายการเป็นอาร์กิวเมนต์ที่แยกกันซึ่งส่งไปยัง Callback แทนการส่งคืนออบเจ็กต์

พารามิเตอร์

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (result: object) => void

    • ผลลัพธ์

      ออบเจ็กต์

      Chrome เวอร์ชัน 109 ขึ้นไป

      ออบเจ็กต์ RequestUpdateCheckResult ที่เก็บสถานะของการตรวจสอบการอัปเดตและรายละเอียดผลลัพธ์หากมีอัปเดต

      • สถานะ

        ผลการตรวจสอบการอัปเดต

      • เวอร์ชัน

        string ไม่บังคับ

        หากมีการอัปเดตพร้อมใช้งาน คุณจะเห็นเวอร์ชันของอัปเดตที่มีอยู่

การคืนสินค้า

  • Promise&lt;object&gt;

    Chrome เวอร์ชัน 109 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

restart()

chrome.runtime.restart()

รีสตาร์ทอุปกรณ์ ChromeOS เมื่อแอปทำงานในโหมดคีออสก์ มิเช่นนั้น ก็ไม่มีการใช้งาน

restartAfterDelay()

สัญญา Chrome 53 ขึ้นไป
chrome.runtime.restartAfterDelay(
  seconds: number,
  callback?: function,
)

รีสตาร์ทอุปกรณ์ ChromeOS เมื่อแอปทำงานในโหมดคีออสก์หลังจากผ่านไปไม่กี่วินาที หากเรียกใช้อีกครั้งก่อนเวลาสิ้นสุดลง การรีบูตจะล่าช้า หากเรียกใช้ด้วยค่า -1 ระบบจะยกเลิกการรีบูต ไม่มีการดำเนินการในโหมดที่ไม่ใช่คีออสก์ ส่วนขยายแรกจะได้รับอนุญาตให้เรียก API นี้ซ้ำๆ เท่านั้น

พารามิเตอร์

  • วินาที

    ตัวเลข

    เวลาที่ต้องรอเป็นวินาทีก่อนรีบูตอุปกรณ์ หรือ -1 เพื่อยกเลิกการรีบูตที่ตั้งเวลาไว้

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    () => void

การคืนสินค้า

  • คำมั่นสัญญา<โมฆะ>

    Chrome 99 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

sendMessage()

สัญญา
chrome.runtime.sendMessage(
  extensionId?: string,
  message: any,
  options?: object,
  callback?: function,
)

ส่งข้อความเดียวไปยัง Listener เหตุการณ์ภายในส่วนขยายหรือส่วนขยาย/แอปอื่น คล้ายกับ runtime.connect แต่จะส่งเพียงข้อความเดียวพร้อมตัวเลือกการตอบกลับ หากส่งไปยังส่วนขยาย เหตุการณ์ runtime.onMessage จะเริ่มทำงานในทุกเฟรมของส่วนขยาย (ยกเว้นเฟรมของผู้ส่ง) หรือ runtime.onMessageExternal หากส่วนขยายอื่น โปรดทราบว่าส่วนขยายไม่สามารถส่งข้อความถึงสคริปต์เนื้อหาด้วยวิธีนี้ หากต้องการส่งข้อความไปยังสคริปต์เนื้อหา ให้ใช้ tabs.sendMessage

พารามิเตอร์

  • extensionId

    string ไม่บังคับ

    รหัสของส่วนขยายที่จะส่งข้อความถึง หากไม่ระบุ ระบบจะส่งข้อความไปยังส่วนขยาย/แอปของคุณ ต้องระบุหากส่งข้อความจากหน้าเว็บสำหรับการรับส่งข้อความในเว็บ

  • ข้อความ

    ใดๆ

    ข้อความที่จะส่ง ข้อความนี้ควรเป็นออบเจ็กต์ JSON ที่รองรับได้

  • ตัวเลือก

    ออบเจ็กต์ไม่บังคับ

    • includeTlsChannelId

      บูลีน ไม่บังคับ

      กำหนดว่าจะส่งผ่านรหัสช่อง TLS ไปยัง onMessageExternal สำหรับกระบวนการที่รอรับเหตุการณ์การเชื่อมต่อหรือไม่

  • Callback

    ไม่บังคับ

    Chrome 99 ขึ้นไป

    พารามิเตอร์ callback มีลักษณะดังนี้

    (response: any) => void

    • การตอบกลับ

      ใดๆ

      ออบเจ็กต์การตอบกลับ JSON ที่ส่งโดยเครื่องจัดการข้อความ หากเกิดข้อผิดพลาดขณะเชื่อมต่อกับส่วนขยาย ระบบจะเรียกใช้ Callback โดยไม่มีอาร์กิวเมนต์ และตั้งค่า runtime.lastError ในข้อความแสดงข้อผิดพลาด

การคืนสินค้า

  • สัญญา<ไม่จำกัด>

    Chrome 99 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

sendNativeMessage()

สัญญา
chrome.runtime.sendNativeMessage(
  application: string,
  message: object,
  callback?: function,
)

ส่งข้อความเดียวไปยังแอปพลิเคชันที่มาพร้อมเครื่อง วิธีนี้ต้องใช้สิทธิ์ "nativeMessaging"

พารามิเตอร์

  • แอปพลิเคชัน

    สตริง

    ชื่อของโฮสต์การรับส่งข้อความในเครื่อง

  • ข้อความ

    ออบเจ็กต์

    ข้อความที่จะส่งไปยังโฮสต์การรับส่งข้อความดั้งเดิม

  • Callback

    ไม่บังคับ

    Chrome 99 ขึ้นไป

    พารามิเตอร์ callback มีลักษณะดังนี้

    (response: any) => void

    • การตอบกลับ

      ใดๆ

      ข้อความตอบกลับที่ส่งโดยโฮสต์การรับส่งข้อความในเครื่อง หากเกิดข้อผิดพลาดขณะเชื่อมต่อกับโฮสต์การรับส่งข้อความดั้งเดิม ระบบจะเรียกใช้ Callback โดยไม่มีอาร์กิวเมนต์ และตั้งค่า runtime.lastError ในข้อความแสดงข้อผิดพลาด

การคืนสินค้า

  • สัญญา<ไม่จำกัด>

    Chrome 99 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

setUninstallURL()

สัญญา
chrome.runtime.setUninstallURL(
  url: string,
  callback?: function,
)

ตั้งค่า URL ที่จะเข้าชมเมื่อถอนการติดตั้ง ข้อมูลนี้อาจใช้เพื่อล้างข้อมูลฝั่งเซิร์ฟเวอร์ ทําการวิเคราะห์ และใช้งานแบบสํารวจ สูงสุด 1,023 อักขระ

พารามิเตอร์

  • URL

    สตริง

    URL ที่จะเปิดหลังจากถอนการติดตั้งส่วนขยายแล้ว URL นี้ต้องมีชุดรูปแบบ http: หรือ https: โปรดตั้งค่าสตริงว่างเพื่อไม่ให้เปิดแท็บใหม่เมื่อถอนการติดตั้ง

  • Callback

    ไม่บังคับ

    Chrome 45 ขึ้นไป

    พารามิเตอร์ callback มีลักษณะดังนี้

    () => void

การคืนสินค้า

  • คำมั่นสัญญา<โมฆะ>

    Chrome 99 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

กิจกรรม

onBrowserUpdateAvailable

เลิกใช้งานแล้ว
chrome.runtime.onBrowserUpdateAvailable.addListener(
  callback: function,
)

โปรดใช้ runtime.onRestartRequired

เริ่มทำงานเมื่อการอัปเดต Chrome พร้อมใช้งาน แต่ไม่ได้ติดตั้งทันทีเนื่องจากต้องรีสตาร์ทเบราว์เซอร์

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    () => void

onConnect

chrome.runtime.onConnect.addListener(
  callback: function,
)

เริ่มทำงานเมื่อมีการเชื่อมต่อจากกระบวนการส่วนขยายหรือสคริปต์เนื้อหา (โดย runtime.connect)

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (port: Port) => void

onConnectExternal

chrome.runtime.onConnectExternal.addListener(
  callback: function,
)

เริ่มทำงานเมื่อมีการเชื่อมต่อจากส่วนขยายอื่น (โดย runtime.connect) หรือจากเว็บไซต์ที่เชื่อมต่อภายนอก

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (port: Port) => void

onConnectNative

Chrome 76 ขึ้นไป
chrome.runtime.onConnectNative.addListener(
  callback: function,
)

เริ่มทำงานเมื่อมีการเชื่อมต่อจากแอปพลิเคชันของระบบ กิจกรรมนี้ต้องใช้สิทธิ์ "nativeMessaging" ฟีเจอร์นี้รองรับเฉพาะใน Chrome OS เท่านั้น

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (port: Port) => void

onInstalled

chrome.runtime.onInstalled.addListener(
  callback: function,
)

เริ่มทำงานเมื่อมีการติดตั้งส่วนขยายเป็นครั้งแรก อัปเดตส่วนขยายเป็นเวอร์ชันใหม่ และเมื่อมีการอัปเดต Chrome เป็นเวอร์ชันใหม่

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object) => void

    • รายละเอียด

      ออบเจ็กต์

      • id

        string ไม่บังคับ

        ระบุรหัสของส่วนขยายโมดูลที่ใช้ร่วมกันที่นำเข้าซึ่งอัปเดตแล้ว ระบบจะแสดงเฉพาะกรณีที่มี "เหตุผล" เท่านั้น คือ "shared_module_update"

      • previousVersion

        string ไม่บังคับ

        ระบุเวอร์ชันก่อนหน้านี้ของส่วนขยายที่เพิ่งได้รับการอัปเดต ระบบจะแสดงเฉพาะกรณีที่มี "เหตุผล" เท่านั้น คือ "อัปเดต"

      • สาเหตุ

        เหตุผลที่ส่งกิจกรรมนี้

onMessage

chrome.runtime.onMessage.addListener(
  callback: function,
)

เริ่มทำงานเมื่อมีการส่งข้อความจากกระบวนการส่วนขยาย (โดย runtime.sendMessage) หรือสคริปต์เนื้อหา (โดย tabs.sendMessage)

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (message: any, sender: MessageSender, sendResponse: function) => boolean | undefined

    • ข้อความ

      ใดๆ

    • ผู้ส่ง
    • sendResponse

      ฟังก์ชัน

      พารามิเตอร์ sendResponse มีลักษณะดังนี้

      () => void

    • returns

      boolean | ไม่ได้กำหนด

onMessageExternal

chrome.runtime.onMessageExternal.addListener(
  callback: function,
)

เริ่มทำงานเมื่อมีการส่งข้อความจากส่วนขยายอื่น (โดย runtime.sendMessage) ไม่สามารถใช้ในสคริปต์เนื้อหา

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (message: any, sender: MessageSender, sendResponse: function) => boolean | undefined

    • ข้อความ

      ใดๆ

    • ผู้ส่ง
    • sendResponse

      ฟังก์ชัน

      พารามิเตอร์ sendResponse มีลักษณะดังนี้

      () => void

    • returns

      boolean | ไม่ได้กำหนด

onRestartRequired

chrome.runtime.onRestartRequired.addListener(
  callback: function,
)

เริ่มทำงานเมื่อต้องรีสตาร์ทแอปหรืออุปกรณ์ที่ใช้ แอปควรปิดหน้าต่างทั้งหมดทันทีที่สะดวกเพื่อให้รีสตาร์ทได้ หากแอปไม่ดําเนินการใดๆ ระบบจะบังคับให้รีสตาร์ทหลังจากผ่านระยะเวลาผ่อนผัน 24 ชั่วโมงไปแล้ว ปัจจุบันเหตุการณ์นี้จะเริ่มทำงานเฉพาะกับแอปคีออสก์ของ Chrome OS เท่านั้น

พารามิเตอร์

onStartup

chrome.runtime.onStartup.addListener(
  callback: function,
)

เริ่มทำงานเมื่อโปรไฟล์ที่ติดตั้งส่วนขยายนี้เริ่มทำงานเป็นครั้งแรก เหตุการณ์นี้จะไม่เริ่มทำงานเมื่อเริ่มโปรไฟล์ที่ไม่ระบุตัวตน แม้ว่าส่วนขยายนี้จะทำงานแบบ "แยก" ก็ตาม โหมดไม่ระบุตัวตน

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    () => void

onSuspend

chrome.runtime.onSuspend.addListener(
  callback: function,
)

ส่งไปยังหน้ากิจกรรมก่อนที่ระบบจะยกเลิกการโหลด ซึ่งทำให้ส่วนขยายมีโอกาสทำความสะอาดข้อมูล โปรดทราบว่าเนื่องจากหน้าเว็บกำลังยกเลิกการโหลด การดำเนินการแบบไม่พร้อมกันที่เริ่มต้นขณะจัดการเหตุการณ์นี้จึงไม่รับประกันว่าจะเสร็จสิ้น หากมีกิจกรรมเพิ่มเติมในหน้ากิจกรรมเกิดขึ้นก่อนที่จะยกเลิกการโหลด ระบบจะส่งกิจกรรม onsuspendedCanceled แล้วและจะไม่ยกเลิกการโหลดหน้าดังกล่าว

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    () => void

onSuspendCanceled

chrome.runtime.onSuspendCanceled.addListener(
  callback: function,
)

ส่งหลังจากถูกระงับเพื่อระบุว่าจะไม่มีการยกเลิกการโหลดแอปพลิเคชันอีกต่อไป

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    () => void

onUpdateAvailable

chrome.runtime.onUpdateAvailable.addListener(
  callback: function,
)

เริ่มทำงานเมื่อมีอัปเดต แต่ไม่ได้ติดตั้งทันทีเนื่องจากแอปกำลังทำงาน หากไม่ดำเนินการใดๆ ระบบจะติดตั้งการอัปเดตในครั้งต่อไปที่มีการยกเลิกการโหลดหน้าพื้นหลัง หากคุณต้องการติดตั้งให้เร็วกว่านั้น คุณสามารถเรียกใช้ chrome.runtime.reload() อย่างชัดแจ้ง หากส่วนขยายของคุณใช้หน้าเว็บพื้นหลังที่อยู่ถาวร หน้าพื้นหลังจะไม่ถูกยกเลิกการโหลด ดังนั้นถ้าคุณไม่เรียกใช้ chrome.runtime.reload() ด้วยตนเองเพื่อตอบสนองต่อเหตุการณ์นี้ การอัปเดตจะไม่ติดตั้งจนกว่า Chrome จะรีสตาร์ทในครั้งถัดไป หากไม่มีตัวแฮนเดิลที่รอรับเหตุการณ์นี้อยู่ และส่วนขยายมีหน้าเว็บพื้นหลังแบบถาวร ส่วนขยายจะทำงานเสมือนว่ามีการเรียก chrome.runtime.reload() เพื่อตอบสนองต่อเหตุการณ์นี้

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object) => void

    • รายละเอียด

      ออบเจ็กต์

      • เวอร์ชัน

        สตริง

        หมายเลขเวอร์ชันของการอัปเดตที่มี

onUserScriptConnect

Chrome 115 ขึ้นไป MV3 ขึ้นไป
chrome.runtime.onUserScriptConnect.addListener(
  callback: function,
)

เริ่มทำงานเมื่อมีการเชื่อมต่อจากสคริปต์ผู้ใช้จากส่วนขยายนี้

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (port: Port) => void

onUserScriptMessage

Chrome 115 ขึ้นไป MV3 ขึ้นไป
chrome.runtime.onUserScriptMessage.addListener(
  callback: function,
)

เริ่มทำงานเมื่อมีการส่งข้อความจากสคริปต์ผู้ใช้ที่เชื่อมโยงกับส่วนขยายเดียวกัน

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (message: any, sender: MessageSender, sendResponse: function) => boolean | undefined

    • ข้อความ

      ใดๆ

    • ผู้ส่ง
    • sendResponse

      ฟังก์ชัน

      พารามิเตอร์ sendResponse มีลักษณะดังนี้

      () => void

    • returns

      boolean | ไม่ได้กำหนด