คำอธิบาย
ใช้ chrome.tabs
API เพื่อโต้ตอบกับระบบแท็บของเบราว์เซอร์ คุณสามารถใช้ API นี้เพื่อสร้าง แก้ไข และจัดเรียงแท็บในเบราว์เซอร์ใหม่ได้
Tabs API ไม่เพียงมีฟีเจอร์สำหรับจัดการและควบคุมแท็บเท่านั้น แต่ยังตรวจจับภาษาของแท็บ ถ่ายภาพภาพหน้าจอ และสื่อสารกับสคริปต์เนื้อหาของแท็บได้ด้วย
สิทธิ์
ฟีเจอร์ส่วนใหญ่ไม่จําเป็นต้องขอสิทธิ์ใดๆ เช่น การสร้างแท็บใหม่ การโหลดซ้ำแท็บ การไปยัง URL อื่น ฯลฯ
นักพัฒนาซอฟต์แวร์ควรทราบถึงสิทธิ์ 3 รายการเมื่อทำงานกับ Tabs API
- สิทธิ์ "แท็บ"
สิทธิ์นี้ไม่ได้ให้สิทธิ์เข้าถึงเนมสเปซ
chrome.tabs
แต่จะให้สิทธิ์ส่วนขยายเรียกtabs.query()
กับพร็อพเพอร์ตี้ที่มีความละเอียดอ่อน 4 รายการในอินสแตนซ์tabs.Tab
ได้แก่url
,pendingUrl
,title
และfavIconUrl
{ "name": "My extension", ... "permissions": [ "tabs" ], ... }
- สิทธิ์ของโฮสต์
สิทธิ์ของโฮสต์ช่วยให้ส่วนขยายอ่านและค้นหาพร็อพเพอร์ตี้
tabs.Tab
ที่มีความละเอียดอ่อน 4 รายการของแท็บที่ตรงกันได้ นอกจากนี้ ยังโต้ตอบกับแท็บที่ตรงกันโดยตรงได้โดยใช้เมธอดต่างๆ เช่นtabs.captureVisibleTab()
,scripting.executeScript()
,scripting.insertCSS()
และscripting.removeCSS()
{ "name": "My extension", ... "host_permissions": [ "http://*/*", "https://*/*" ], ... }
- สิทธิ์ "activeTab"
activeTab
ให้สิทธิ์โฮสต์ชั่วคราวแก่ส่วนขยายสําหรับแท็บปัจจุบันเพื่อตอบสนองต่อการเรียกใช้ของผู้ใช้activeTab
จะไม่ทริกเกอร์คำเตือนใดๆ ซึ่งต่างจากสิทธิ์ของโฮสต์{ "name": "My extension", ... "permissions": [ "activeTab" ], ... }
กรณีการใช้งาน
ส่วนต่อไปนี้แสดง Use Case ทั่วไปบางส่วน
เปิดหน้าส่วนขยายในแท็บใหม่
รูปแบบที่พบบ่อยสำหรับส่วนขยายคือการเปิดหน้าเริ่มต้นใช้งานในแท็บใหม่เมื่อติดตั้งส่วนขยาย ตัวอย่างต่อไปนี้แสดงวิธีดำเนินการ
background.js:
chrome.runtime.onInstalled.addListener(({reason}) => { if (reason === 'install') { chrome.tabs.create({ url: "onboarding.html" }); } });
รับแท็บปัจจุบัน
ตัวอย่างนี้แสดงวิธีที่ Service Worker ของส่วนขยายสามารถดึงข้อมูลแท็บที่ใช้งานอยู่จากหน้าต่างที่โฟกัสอยู่ในปัจจุบัน (หรือหน้าต่างที่โฟกัสล่าสุด หากไม่มีหน้าต่าง Chrome ที่โฟกัสอยู่) ซึ่งโดยปกติแล้วอาจหมายถึงแท็บปัจจุบันของผู้ใช้
async function getCurrentTab() { let queryOptions = { active: true, lastFocusedWindow: true }; // `tab` will either be a `tabs.Tab` instance or `undefined`. let [tab] = await chrome.tabs.query(queryOptions); return tab; }
function getCurrentTab(callback) { let queryOptions = { active: true, lastFocusedWindow: true }; chrome.tabs.query(queryOptions, ([tab]) => { if (chrome.runtime.lastError) console.error(chrome.runtime.lastError); // `tab` will either be a `tabs.Tab` instance or `undefined`. callback(tab); }); }
ปิดเสียงแท็บที่ระบุ
ตัวอย่างนี้แสดงวิธีที่ส่วนขยายสลับสถานะปิดเสียงสำหรับแท็บหนึ่งๆ ได้
async function toggleMuteState(tabId) { const tab = await chrome.tabs.get(tabId); const muted = !tab.mutedInfo.muted; await chrome.tabs.update(tabId, {muted}); console.log(`Tab ${tab.id} is ${muted ? "muted" : "unmuted"}`); }
function toggleMuteState(tabId) { chrome.tabs.get(tabId, async (tab) => { let muted = !tab.mutedInfo.muted; await chrome.tabs.update(tabId, { muted }); console.log(`Tab ${tab.id} is ${ muted ? "muted" : "unmuted" }`); }); }
ย้ายแท็บปัจจุบันไปยังตำแหน่งแรกเมื่อคลิก
ตัวอย่างนี้แสดงวิธีย้ายแท็บขณะที่การลากอาจเกิดขึ้นหรือไม่เกิดขึ้น แม้ว่าตัวอย่างนี้จะใช้ chrome.tabs.move
แต่คุณใช้รูปแบบการรอเดียวกันนี้กับการเรียกอื่นๆ ที่แก้ไขแท็บขณะที่การลากเกิดขึ้นได้
chrome.tabs.onActivated.addListener(moveToFirstPosition); async function moveToFirstPosition(activeInfo) { try { await chrome.tabs.move(activeInfo.tabId, {index: 0}); console.log("Success."); } catch (error) { if (error == "Error: Tabs cannot be edited right now (user may be dragging a tab).") { setTimeout(() => moveToFirstPosition(activeInfo), 50); } else { console.error(error); } } }
chrome.tabs.onActivated.addListener(moveToFirstPositionMV2); function moveToFirstPositionMV2(activeInfo) { chrome.tabs.move(activeInfo.tabId, { index: 0 }, () => { if (chrome.runtime.lastError) { const error = chrome.runtime.lastError; if (error == "Error: Tabs cannot be edited right now (user may be dragging a tab).") { setTimeout(() => moveToFirstPositionMV2(activeInfo), 50); } else { console.error(error); } } else { console.log("Success."); } }); }
ส่งข้อความไปยังสคริปต์เนื้อหาของแท็บที่เลือก
ตัวอย่างนี้แสดงวิธีที่ Service Worker ของส่วนขยายสามารถสื่อสารกับสคริปต์เนื้อหาในแท็บเบราว์เซอร์ที่เฉพาะเจาะจงโดยใช้ tabs.sendMessage()
function sendMessageToActiveTab(message) { const [tab] = await chrome.tabs.query({ active: true, lastFocusedWindow: true }); const response = await chrome.tabs.sendMessage(tab.id, message); // TODO: Do something with the response. }
ตัวอย่างส่วนขยาย
ดูการสาธิตส่วนขยาย Tabs API เพิ่มเติมได้จากรายการต่อไปนี้
ประเภท
MutedInfo
สถานะการปิดเสียงของแท็บและเหตุผลของการเปลี่ยนแปลงสถานะล่าสุด
พร็อพเพอร์ตี้
- extensionId
สตริง ไม่บังคับ
รหัสของส่วนขยายที่เปลี่ยนสถานะปิดเสียง ไม่ได้ตั้งค่าไว้หากส่วนขยายไม่ใช่สาเหตุที่สถานะปิดเสียงมีการเปลี่ยนแปลงครั้งล่าสุด
- ปิดเสียงอยู่
บูลีน
แท็บปิดเสียงอยู่หรือไม่ (ป้องกันไม่ให้เล่นเสียง) แท็บอาจถูกปิดเสียงแม้ว่าจะยังไม่ได้เล่นหรือไม่ได้เล่นเสียงอยู่ก็ตาม เทียบเท่ากับการแสดงตัวบ่งชี้เสียง "ปิดเสียง"
- เหตุผล
MutedInfoReason ไม่บังคับ
สาเหตุที่ปิดเสียงหรือเปิดเสียงแท็บ ไม่ได้ตั้งค่าไว้หากไม่เคยมีการเปลี่ยนแปลงสถานะการปิดเสียงของแท็บ
MutedInfoReason
เหตุการณ์ที่ทําให้สถานะปิดเสียงมีการเปลี่ยนแปลง
ค่าแจกแจง
"user"
การดำเนินการป้อนข้อมูลของผู้ใช้ตั้งค่าสถานะปิดเสียง
"capture"
การจับภาพแท็บเริ่มต้นขึ้น ซึ่งบังคับให้เปลี่ยนสถานะเป็นปิดเสียง
"extension"
ส่วนขยายที่ระบุโดยช่อง extensionId จะตั้งค่าสถานะปิดเสียง
Tab
พร็อพเพอร์ตี้
- ใช้งาน
บูลีน
แท็บในหน้าต่างใช้งานอยู่หรือไม่ ไม่ได้หมายความว่าหน้าต่างนั้นโฟกัสอยู่
- audible
บูลีน ไม่บังคับ
Chrome 45 ขึ้นไปแท็บส่งเสียงในช่วง 2-3 วินาทีที่ผ่านมาหรือไม่ (แต่คุณอาจไม่ได้ยินเสียงหากปิดเสียงไว้) เทียบเท่ากับว่าตัวบ่งชี้ "เสียงจากลำโพง" แสดงอยู่หรือไม่
- autoDiscardable
บูลีน
Chrome 54 ขึ้นไปเบราว์เซอร์จะทิ้งแท็บโดยอัตโนมัติได้หรือไม่เมื่อทรัพยากรเหลือน้อย
- ทิ้งแล้ว
บูลีน
Chrome 54 ขึ้นไปมีการทิ้งแท็บหรือไม่ แท็บที่ทิ้งคือแท็บที่ระบบได้ยกเลิกการโหลดเนื้อหาออกจากหน่วยความจำแล้ว แต่ยังคงปรากฏในแถบแท็บ ระบบจะโหลดเนื้อหาอีกครั้งเมื่อเปิดใช้งานอุปกรณ์ในครั้งถัดไป
- favIconUrl
สตริง ไม่บังคับ
URL ของไอคอน Fav ของแท็บ พร็อพเพอร์ตี้นี้จะแสดงเฉพาะในกรณีที่ส่วนขยายมีสิทธิ์
"tabs"
หรือมีสิทธิ์ของโฮสต์สําหรับหน้านั้น หรืออาจเป็นสตริงว่างหากแท็บกำลังโหลด - หยุดทำงาน
บูลีน
Chrome 132 ขึ้นไปแท็บค้างหรือไม่ แท็บที่หยุดทำงานจะไม่สามารถทำงานต่างๆ ได้ ซึ่งรวมถึงเครื่องจัดการเหตุการณ์หรือตัวจับเวลา แท็บจะปรากฏในแถบแท็บและระบบจะโหลดเนื้อหาของแท็บไว้ในหน่วยความจำ ระบบจะเลิกระงับบัญชีเมื่อเปิดใช้งาน
- groupId
ตัวเลข
Chrome 88 ขึ้นไปรหัสของกลุ่มที่แท็บนั้นอยู่
- ส่วนสูง
ตัวเลข ไม่บังคับ
ความสูงของแท็บในหน่วยพิกเซล
- ไฮไลต์ไว้
บูลีน
มีการไฮไลต์แท็บหรือไม่
- id
ตัวเลข ไม่บังคับ
รหัสของแท็บ รหัสแท็บจะซ้ำกันไม่ได้ภายในเซสชันของเบราว์เซอร์ ในบางกรณี ระบบอาจไม่ได้กำหนดรหัสให้กับแท็บ เช่น เมื่อค้นหาแท็บต่างประเทศโดยใช้
sessions
API ซึ่งในกรณีนี้อาจมีรหัสเซสชันอยู่ นอกจากนี้ คุณยังตั้งค่ารหัสแท็บเป็นchrome.tabs.TAB_ID_NONE
สำหรับแอปและหน้าต่างเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ได้ด้วย - ไม่ระบุตัวตน
บูลีน
แท็บอยู่ในหน้าต่างที่ไม่ระบุตัวตนหรือไม่
- ดัชนี
ตัวเลข
ดัชนีแบบนับจาก 0 ของแท็บภายในหน้าต่าง
- lastAccessed
ตัวเลข
Chrome 121 ขึ้นไปครั้งล่าสุดที่แท็บทำงานในกรอบเวลาเป็นจำนวนมิลลิวินาทีนับจากจุดเริ่มต้น
- mutedInfo
MutedInfo ไม่บังคับ
Chrome 46 ขึ้นไปสถานะการปิดเสียงของแท็บและเหตุผลของการเปลี่ยนแปลงสถานะล่าสุด
- openerTabId
ตัวเลข ไม่บังคับ
รหัสของแท็บที่เปิดแท็บนี้ (หากมี) พร็อพเพอร์ตี้นี้จะแสดงก็ต่อเมื่อแท็บที่เปิดอยู่ยังคงมีอยู่
- pendingUrl
สตริง ไม่บังคับ
Chrome 79 ขึ้นไปURL ที่แท็บกําลังไปยังก่อนที่จะมีการทําการเปลี่ยนแปลง พร็อพเพอร์ตี้นี้จะแสดงก็ต่อเมื่อส่วนขยายมีสิทธิ์
"tabs"
หรือมีสิทธิ์ของโฮสต์สําหรับหน้าเว็บ และมีการนำทางที่รอดำเนินการ - ตรึงอยู่
บูลีน
แท็บปักหมุดไว้หรือไม่
- เลือกแล้ว
บูลีน
เลิกใช้งานโปรดใช้
tabs.Tab.highlighted
เลือกแท็บหรือไม่
- sessionId
สตริง ไม่บังคับ
รหัสเซสชันที่ใช้ในการระบุแท็บที่ไม่ซ้ำกันซึ่งได้จาก
sessions
API - สถานะ
TabStatus ไม่บังคับ
สถานะการโหลดของแท็บ
- title
สตริง ไม่บังคับ
ชื่อแท็บ พร็อพเพอร์ตี้นี้จะแสดงเฉพาะในกรณีที่ส่วนขยายมีสิทธิ์
"tabs"
หรือมีสิทธิ์ของโฮสต์สําหรับหน้านั้น - URL
สตริง ไม่บังคับ
URL ที่คอมมิตล่าสุดของเฟรมหลักของแท็บ พร็อพเพอร์ตี้นี้จะแสดงเฉพาะในกรณีที่ส่วนขยายมีสิทธิ์
"tabs"
หรือมีสิทธิ์ของโฮสต์สําหรับหน้านั้น อาจเป็นสตริงว่างหากยังไม่ได้บันทึกแท็บ โปรดดูTab.pendingUrl
- ความกว้าง
ตัวเลข ไม่บังคับ
ความกว้างของแท็บเป็นพิกเซล
- windowId
ตัวเลข
รหัสของหน้าต่างที่มีแท็บ
TabStatus
สถานะการโหลดของแท็บ
ค่าแจกแจง
"unloaded"
"loading"
"complete"
WindowType
ประเภทของกรอบเวลา
ค่าแจกแจง
"normal"
"popup"
"panel"
"app"
"devtools"
ZoomSettings
กำหนดวิธีจัดการการเปลี่ยนแปลงการซูมในแท็บและขอบเขต
พร็อพเพอร์ตี้
- defaultZoomFactor
ตัวเลข ไม่บังคับ
Chrome 43 ขึ้นไปใช้เพื่อแสดงผลระดับการซูมเริ่มต้นของแท็บปัจจุบันในการเรียกใช้ tabs.getZoomSettings
- โหมด
ZoomSettingsMode ไม่บังคับ
กำหนดวิธีจัดการการเปลี่ยนแปลงการซูม เช่น ระบุเอนทิตีที่รับผิดชอบการปรับขนาดหน้าเว็บจริง ค่าเริ่มต้นคือ
automatic
- ขอบเขต
ZoomSettingsScope ไม่บังคับ
กำหนดว่าการเปลี่ยนแปลงการซูมจะคงอยู่สำหรับต้นทางของหน้าเว็บหรือจะมีผลเฉพาะในแท็บนี้เท่านั้น โดยค่าเริ่มต้นจะเป็น
per-origin
เมื่ออยู่ในโหมดautomatic
และper-tab
ในกรณีอื่นๆ
ZoomSettingsMode
กำหนดวิธีจัดการการเปลี่ยนแปลงการซูม เช่น ระบุเอนทิตีที่รับผิดชอบการปรับขนาดหน้าเว็บจริง ค่าเริ่มต้นคือ automatic
ค่าแจกแจง
"อัตโนมัติ"
เบราว์เซอร์จะจัดการการเปลี่ยนแปลงการซูมโดยอัตโนมัติ
"manual"
ลบล้างการจัดการการเปลี่ยนแปลงการซูมโดยอัตโนมัติ ระบบจะยังคงส่งเหตุการณ์ onZoomChange
และส่วนขยายมีหน้าที่รับผิดชอบในการรอเหตุการณ์นี้และปรับขนาดหน้าเว็บด้วยตนเอง โหมดนี้ไม่รองรับการซูม per-origin
จึงจะไม่สนใจการตั้งค่าการซูม scope
และถือว่าใช้ per-tab
"disabled"
ปิดใช้การซูมทั้งหมดในแท็บ แท็บจะเปลี่ยนกลับไปเป็นระดับการซูมเริ่มต้น และระบบจะไม่สนใจการเปลี่ยนแปลงการซูมทั้งหมดที่พยายามทำ
ZoomSettingsScope
กำหนดว่าการเปลี่ยนแปลงการซูมจะคงอยู่สำหรับต้นทางของหน้าเว็บหรือจะมีผลเฉพาะในแท็บนี้เท่านั้น โดยค่าเริ่มต้นจะเป็น per-origin
เมื่ออยู่ในโหมด automatic
และ per-tab
ในกรณีอื่นๆ
ค่าแจกแจง
"ต่อต้นทาง"
การเปลี่ยนแปลงการซูมจะยังคงอยู่ในต้นทางของหน้าที่ซูมอยู่ กล่าวคือ แท็บอื่นๆ ทั้งหมดที่ไปยังต้นทางเดียวกันนั้นจะซูมด้วยเช่นกัน นอกจากนี้ per-origin
ระบบจะบันทึกการเปลี่ยนแปลงการซูมไว้กับต้นทาง ซึ่งหมายความว่าเมื่อไปยังหน้าอื่นๆ ในต้นทางเดียวกัน ระบบจะซูมหน้าทั้งหมดเป็นอัตราส่วนการซูมเดียวกัน ขอบเขต per-origin
ใช้ได้เฉพาะในโหมด automatic
"ต่อแท็บ"
การเปลี่ยนแปลงการซูมจะมีผลในแท็บนี้เท่านั้น และการเปลี่ยนแปลงการซูมในแท็บอื่นๆ จะไม่ส่งผลต่อการซูมของแท็บนี้ นอกจากนี้ per-tab
ระบบจะรีเซ็ตการเปลี่ยนแปลงการซูมเมื่อไปยังส่วนต่างๆ ของหน้าเว็บ โดยการนำทางในแท็บจะโหลดหน้าเว็บด้วยper-origin
ปัจจัยการซูมเสมอ
พร็อพเพอร์ตี้
MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND
จำนวนครั้งสูงสุดที่เรียก captureVisibleTab
ได้ต่อวินาที captureVisibleTab
มีราคาแพงและไม่ควรเรียกใช้บ่อยเกินไป
ค่า
2
TAB_ID_NONE
รหัสที่แสดงถึงการไม่มีแท็บเบราว์เซอร์
ค่า
-1
TAB_INDEX_NONE
ดัชนีที่แสดงถึงการไม่มีดัชนีแท็บใน tab_strip
ค่า
-1
เมธอด
captureVisibleTab()
chrome.tabs.captureVisibleTab(
windowId?: number,
options?: ImageDetails,
callback?: function,
)
จับภาพพื้นที่ที่มองเห็นได้ของแท็บที่ใช้งานอยู่ในปัจจุบันในหน้าต่างที่ระบุ หากต้องการเรียกใช้เมธอดนี้ ส่วนขยายต้องมีสิทธิ์ <all_urls> หรือสิทธิ์ activeTab นอกจากเว็บไซต์ที่ส่วนขยายเข้าถึงได้ตามปกติแล้ว วิธีนี้ยังอนุญาตให้ส่วนขยายจับภาพเว็บไซต์ที่มีความละเอียดอ่อนซึ่งถูกจํากัดไว้ด้วย ซึ่งรวมถึงหน้า chrome:-scheme, หน้าส่วนขยายอื่นๆ และ URL ของ data: เว็บไซต์ที่มีความละเอียดอ่อนเหล่านี้จะจับภาพได้โดยใช้สิทธิ์ activeTab เท่านั้น ระบบจะบันทึก URL ของไฟล์ได้ก็ต่อเมื่อส่วนขยายได้รับสิทธิ์เข้าถึงไฟล์เท่านั้น
พารามิเตอร์
- windowId
ตัวเลข ไม่บังคับ
หน้าต่างเป้าหมาย ค่าเริ่มต้นคือกรอบเวลาปัจจุบัน
- ตัวเลือก
ImageDetails ไม่บังคับ
- Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้(dataUrl: string) => void
- dataUrl
สตริง
URL ของข้อมูลซึ่งเข้ารหัสรูปภาพของพื้นที่ที่มองเห็นได้ของแท็บที่บันทึกไว้ อาจกำหนดให้กับพร็อพเพอร์ตี้ "src" ขององค์ประกอบ
img
HTML เพื่อแสดง
-
การคืนสินค้า
-
Promise<string>
Chrome 88 ขึ้นไปไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะคลายสภาพเป็นประเภทเดียวกับที่ส่งไปยังการเรียกกลับ
connect()
chrome.tabs.connect(
tabId: number,
connectInfo?: object,
)
เชื่อมต่อกับสคริปต์เนื้อหาในแท็บที่ระบุ ระบบจะเรียกเหตุการณ์ runtime.onConnect
ในสคริปต์เนื้อหาแต่ละรายการที่ทํางานในแท็บที่ระบุสําหรับส่วนขยายปัจจุบัน โปรดดูรายละเอียดเพิ่มเติมที่หัวข้อการรับส่งข้อความสคริปต์เนื้อหา
พารามิเตอร์
- tabId
ตัวเลข
- connectInfo
ออบเจ็กต์ ไม่บังคับ
- documentId
สตริง ไม่บังคับ
Chrome 106 ขึ้นไปเปิดพอร์ตไปยังเอกสารที่ระบุโดย
documentId
แทนเฟรมทั้งหมดในแท็บ - frameId
ตัวเลข ไม่บังคับ
เปิดพอร์ตไปยังเฟรมที่เฉพาะเจาะจงซึ่งระบุโดย
frameId
แทนที่จะเปิดพอร์ตไปยังเฟรมทั้งหมดในแท็บ - ชื่อ
สตริง ไม่บังคับ
ระบบจะส่งผ่านไปยัง onConnect สำหรับสคริปต์เนื้อหาที่รอรับเหตุการณ์การเชื่อมต่อ
-
การคืนสินค้า
-
พอร์ตที่ใช้สื่อสารกับสคริปต์เนื้อหาที่ทำงานในแท็บที่ระบุ ระบบจะเรียกเหตุการณ์
runtime.Port
ของพอร์ตให้แสดงหากแท็บปิดอยู่หรือไม่มีอยู่
create()
chrome.tabs.create(
createProperties: object,
callback?: function,
)
สร้างแท็บใหม่
พารามิเตอร์
- createProperties
ออบเจ็กต์
- ใช้งาน
บูลีน ไม่บังคับ
ระบุว่าแท็บควรเป็นแท็บที่ใช้งานอยู่ในหน้าต่างหรือไม่ ไม่ส่งผลต่อโฟกัสของหน้าต่าง (ดู
windows.update
) ค่าเริ่มต้นคือtrue
- ดัชนี
ตัวเลข ไม่บังคับ
ตำแหน่งที่แท็บควรอยู่ในหน้าต่าง ระบบจะจำกัดค่าที่ระบุไว้ให้อยู่ระหว่าง 0 ถึงจํานวนแท็บในหน้าต่าง
- openerTabId
ตัวเลข ไม่บังคับ
รหัสของแท็บที่เปิดแท็บนี้ หากระบุไว้ แท็บที่เปิดอยู่ต้องอยู่ในหน้าต่างเดียวกับแท็บที่สร้างใหม่
- ตรึงอยู่
บูลีน ไม่บังคับ
ควรจะปักหมุดแท็บไว้ไหม ค่าเริ่มต้นคือ
false
- เลือกแล้ว
บูลีน ไม่บังคับ
เลิกใช้งานโปรดใช้คำว่าใช้งานอยู่
กำหนดว่าแท็บควรเป็นแท็บที่เลือกในหน้าต่างหรือไม่ ค่าเริ่มต้นคือ
true
- URL
สตริง ไม่บังคับ
URL สำหรับไปยังแท็บในตอนแรก URL แบบเต็มตามเกณฑ์ต้องมีรูปแบบ (เช่น 'http://www.google.com' ไม่ใช่ 'www.google.com') URL สัมพัทธ์จะสัมพันธ์กับหน้าปัจจุบันภายในส่วนขยาย ค่าเริ่มต้นคือหน้าแท็บใหม่
- windowId
ตัวเลข ไม่บังคับ
หน้าต่างสำหรับสร้างแท็บใหม่ ค่าเริ่มต้นคือกรอบเวลาปัจจุบัน
-
- Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้(tab: Tab) => void
- แท็บ
แท็บที่สร้าง
-
การคืนสินค้า
-
Promise<Tab>
Chrome 88 ขึ้นไปไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะคลายสภาพเป็นประเภทเดียวกับที่ส่งไปยังการเรียกกลับ
detectLanguage()
chrome.tabs.detectLanguage(
tabId?: number,
callback?: function,
)
ตรวจหาภาษาหลักของเนื้อหาในแท็บ
พารามิเตอร์
- tabId
ตัวเลข ไม่บังคับ
ค่าเริ่มต้นคือแท็บที่ใช้งานอยู่ของหน้าต่างปัจจุบัน
- Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้(language: string) => void
- ภาษา
สตริง
รหัสภาษา ISO เช่น
en
หรือfr
ดูรายการภาษาทั้งหมดที่รองรับโดยวิธีการนี้ได้ที่ kLanguageInfoTable ระบบจะตรวจสอบคอลัมน์ที่ 2-4 และแสดงผลค่าแรกที่ไม่ใช่ค่า Null ยกเว้นภาษาจีนตัวย่อที่ระบบจะแสดงผลzh-CN
ระบบจะแสดงผลund
สำหรับภาษาที่ไม่รู้จัก/ไม่ได้ระบุ
-
การคืนสินค้า
-
Promise<string>
Chrome 88 ขึ้นไปไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะคลายสภาพเป็นประเภทเดียวกับที่ส่งไปยังการเรียกกลับ
discard()
chrome.tabs.discard(
tabId?: number,
callback?: function,
)
ทิ้งแท็บออกจากหน่วยความจำ แท็บที่ทิ้งจะยังคงปรากฏในแถบแท็บและจะโหลดซ้ำเมื่อเปิดใช้งาน
พารามิเตอร์
- tabId
ตัวเลข ไม่บังคับ
รหัสของแท็บที่จะทิ้ง หากระบุไว้ ระบบจะทิ้งแท็บ เว้นแต่ว่าแท็บดังกล่าวจะใช้งานอยู่หรือถูกทิ้งไปแล้ว หากไม่ระบุ เบราว์เซอร์จะทิ้งแท็บที่ไม่สำคัญที่สุด ซึ่งอาจไม่สำเร็จหากไม่มีแท็บที่ทิ้งได้
- Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้(tab?: Tab) => void
- แท็บ
แท็บ ไม่บังคับ
แท็บที่ทิ้ง หากทิ้งแท็บเรียบร้อยแล้ว มิเช่นนั้นจะไม่มีค่า
-
การคืนสินค้า
-
Promise<Tab | undefined>
Chrome 88 ขึ้นไปไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะคลายสภาพเป็นประเภทเดียวกับที่ส่งไปยังการเรียกกลับ
duplicate()
chrome.tabs.duplicate(
tabId: number,
callback?: function,
)
ทำซ้ำแท็บ
พารามิเตอร์
- tabId
ตัวเลข
รหัสของแท็บที่จะทำซ้ำ
- Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้(tab?: Tab) => void
การคืนสินค้า
-
Promise<Tab | undefined>
Chrome 88 ขึ้นไปไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะคลายสภาพเป็นประเภทเดียวกับที่ส่งไปยังการเรียกกลับ
get()
chrome.tabs.get(
tabId: number,
callback?: function,
)
ดึงข้อมูลเกี่ยวกับแท็บที่ระบุ
พารามิเตอร์
- tabId
ตัวเลข
- Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้(tab: Tab) => void
- แท็บ
-
การคืนสินค้า
-
Promise<Tab>
Chrome 88 ขึ้นไปไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะคลายสภาพเป็นประเภทเดียวกับที่ส่งไปยังการเรียกกลับ
getCurrent()
chrome.tabs.getCurrent(
callback?: function,
)
รับแท็บที่มีการเรียกใช้สคริปต์นี้ แสดงผล undefined
หากเรียกใช้จากบริบทที่ไม่ใช่แท็บ (เช่น หน้าเบื้องหลังหรือมุมมองป๊อปอัป)
พารามิเตอร์
การคืนสินค้า
-
Promise<Tab | undefined>
Chrome 88 ขึ้นไปไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะคลายสภาพเป็นประเภทเดียวกับที่ส่งไปยังการเรียกกลับ
getZoom()
chrome.tabs.getZoom(
tabId?: number,
callback?: function,
)
รับปัจจัยการซูมปัจจุบันของแท็บที่ระบุ
พารามิเตอร์
- tabId
ตัวเลข ไม่บังคับ
รหัสของแท็บที่จะรับปัจจัยการซูมปัจจุบัน โดยค่าเริ่มต้นจะเป็นแท็บที่ใช้งานอยู่ของหน้าต่างปัจจุบัน
- Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้(zoomFactor: number) => void
- zoomFactor
ตัวเลข
ระดับการซูมปัจจุบันของแท็บ
-
การคืนสินค้า
-
Promise<number>
Chrome 88 ขึ้นไปไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะคลายสภาพเป็นประเภทเดียวกับที่ส่งไปยังการเรียกกลับ
getZoomSettings()
chrome.tabs.getZoomSettings(
tabId?: number,
callback?: function,
)
รับการตั้งค่าการซูมปัจจุบันของแท็บที่ระบุ
พารามิเตอร์
- tabId
ตัวเลข ไม่บังคับ
รหัสของแท็บที่จะรับการตั้งค่าการซูมปัจจุบัน โดยค่าเริ่มต้นจะเป็นแท็บที่ใช้งานอยู่ของหน้าต่างปัจจุบัน
- Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้(zoomSettings: ZoomSettings) => void
- zoomSettings
การตั้งค่าการซูมปัจจุบันของแท็บ
-
การคืนสินค้า
-
Promise<ZoomSettings>
Chrome 88 ขึ้นไปไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะคลายสภาพเป็นประเภทเดียวกับที่ส่งไปยังการเรียกกลับ
goBack()
chrome.tabs.goBack(
tabId?: number,
callback?: function,
)
กลับไปที่หน้าก่อนหน้า (หากมี)
พารามิเตอร์
- tabId
ตัวเลข ไม่บังคับ
รหัสของแท็บที่จะไปยังหน้าก่อนหน้า โดยค่าเริ่มต้นจะเป็นแท็บที่เลือกของหน้าต่างปัจจุบัน
- Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 88 ขึ้นไปไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะคลายสภาพเป็นประเภทเดียวกับที่ส่งไปยังการเรียกกลับ
goForward()
chrome.tabs.goForward(
tabId?: number,
callback?: function,
)
ไปยังหน้าถัดไป หากมี
พารามิเตอร์
- tabId
ตัวเลข ไม่บังคับ
รหัสของแท็บที่จะไปยังหน้าถัดไป โดยค่าเริ่มต้นจะเป็นแท็บที่เลือกในหน้าต่างปัจจุบัน
- Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 88 ขึ้นไปไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะคลายสภาพเป็นประเภทเดียวกับที่ส่งไปยังการเรียกกลับ
group()
chrome.tabs.group(
options: object,
callback?: function,
)
เพิ่มแท็บอย่างน้อย 1 แท็บลงในกลุ่มที่ระบุ หรือหากไม่ได้ระบุกลุ่ม ระบบจะเพิ่มแท็บที่ระบุลงในกลุ่มที่สร้างขึ้นใหม่
พารามิเตอร์
- ตัวเลือก
ออบเจ็กต์
- createProperties
ออบเจ็กต์ ไม่บังคับ
การกําหนดค่าสําหรับการสร้างกลุ่ม ใช้ไม่ได้หากระบุ groupId ไว้แล้ว
- windowId
ตัวเลข ไม่บังคับ
หน้าต่างของกลุ่มใหม่ ค่าเริ่มต้นคือหน้าต่างปัจจุบัน
-
- groupId
ตัวเลข ไม่บังคับ
รหัสของกลุ่มที่จะเพิ่มแท็บ หากไม่ได้ระบุ ระบบจะสร้างกลุ่มใหม่
- tabIds
ตัวเลข | [ตัวเลข, ...ตัวเลข[]]
รหัสแท็บหรือรายการรหัสแท็บที่จะเพิ่มลงในกลุ่มที่ระบุ
-
- Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้(groupId: number) => void
- groupId
ตัวเลข
รหัสของกลุ่มที่เพิ่มแท็บ
-
การคืนสินค้า
-
Promise<number>
ไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะคลายสภาพเป็นประเภทเดียวกับที่ส่งไปยังการเรียกกลับ
highlight()
chrome.tabs.highlight(
highlightInfo: object,
callback?: function,
)
ไฮไลต์แท็บที่ระบุและโฟกัสที่แท็บแรกของกลุ่ม ดูเหมือนจะไม่ทําอะไรเลยหากแท็บที่ระบุใช้งานอยู่
พารามิเตอร์
- highlightInfo
ออบเจ็กต์
- แท็บ
ตัวเลข | ตัวเลข[]
ดัชนีแท็บอย่างน้อย 1 รายการที่จะไฮไลต์
- windowId
ตัวเลข ไม่บังคับ
หน้าต่างที่มีแท็บ
-
- Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้(window: Window) => void
- หน้าต่าง
มีรายละเอียดเกี่ยวกับหน้าต่างที่มีไฮไลต์แท็บ
-
การคืนสินค้า
-
Promise<windows.Window>
Chrome 88 ขึ้นไปไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะคลายสภาพเป็นประเภทเดียวกับที่ส่งไปยังการเรียกกลับ
move()
chrome.tabs.move(
tabIds: number | number[],
moveProperties: object,
callback?: function,
)
ย้ายแท็บอย่างน้อย 1 แท็บไปยังตำแหน่งใหม่ภายในหน้าต่างหรือไปยังหน้าต่างใหม่ โปรดทราบว่าคุณจะย้ายแท็บไปยังและจากหน้าต่างปกติ (window.type === "normal") ได้เท่านั้น
พารามิเตอร์
- tabIds
ตัวเลข | ตัวเลข[]
รหัสแท็บหรือรายการรหัสแท็บที่จะย้าย
- moveProperties
ออบเจ็กต์
- ดัชนี
ตัวเลข
ตำแหน่งที่จะย้ายหน้าต่างไป ใช้
-1
เพื่อวางแท็บที่ท้ายหน้าต่าง - windowId
ตัวเลข ไม่บังคับ
ค่าเริ่มต้นคือหน้าต่างที่แท็บอยู่
-
- Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้(tabs: Tab | Tab[]) => void
การคืนสินค้า
- Chrome 88 ขึ้นไป
ไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะคลายสภาพเป็นประเภทเดียวกับที่ส่งไปยังการเรียกกลับ
query()
chrome.tabs.query(
queryInfo: object,
callback?: function,
)
รับแท็บทั้งหมดที่มีพร็อพเพอร์ตี้ที่ระบุ หรือแท็บทั้งหมดหากไม่ได้ระบุพร็อพเพอร์ตี้
พารามิเตอร์
- queryInfo
ออบเจ็กต์
- ใช้งาน
บูลีน ไม่บังคับ
แท็บในหน้าต่างใช้งานอยู่หรือไม่
- audible
บูลีน ไม่บังคับ
Chrome 45 ขึ้นไปเสียงของแท็บดังหรือไม่
- autoDiscardable
บูลีน ไม่บังคับ
Chrome 54 ขึ้นไปเบราว์เซอร์จะทิ้งแท็บโดยอัตโนมัติได้หรือไม่เมื่อทรัพยากรเหลือน้อย
- currentWindow
บูลีน ไม่บังคับ
แท็บอยู่ในหน้าต่างปัจจุบันหรือไม่
- ทิ้งแล้ว
บูลีน ไม่บังคับ
Chrome 54 ขึ้นไปกำหนดว่าจะทิ้งแท็บหรือไม่ แท็บที่ทิ้งคือแท็บที่ระบบได้ยกเลิกการโหลดเนื้อหาออกจากหน่วยความจำแล้ว แต่ยังคงปรากฏในแถบแท็บ ระบบจะโหลดเนื้อหาอีกครั้งเมื่อเปิดใช้งานอุปกรณ์ในครั้งถัดไป
- หยุดทำงาน
บูลีน ไม่บังคับ
Chrome 132 ขึ้นไปแท็บถูกตรึงหรือไม่ แท็บที่หยุดทำงานจะไม่สามารถทำงานต่างๆ ได้ ซึ่งรวมถึงเครื่องจัดการเหตุการณ์หรือตัวจับเวลา แท็บจะปรากฏในแถบแท็บและระบบจะโหลดเนื้อหาของแท็บไว้ในหน่วยความจำ ระบบจะเลิกระงับบัญชีเมื่อเปิดใช้งาน
- groupId
ตัวเลข ไม่บังคับ
Chrome 88 ขึ้นไปรหัสของกลุ่มที่มีแท็บอยู่ หรือ
tabGroups.TAB_GROUP_ID_NONE
สำหรับแท็บที่ไม่ได้จัดกลุ่ม - ไฮไลต์ไว้
บูลีน ไม่บังคับ
เลือกว่าจะไฮไลต์แท็บหรือไม่
- ดัชนี
ตัวเลข ไม่บังคับ
ตำแหน่งของแท็บในหน้าต่าง
- lastFocusedWindow
บูลีน ไม่บังคับ
แท็บอยู่ในหน้าต่างที่โฟกัสล่าสุดหรือไม่
- ปิดเสียงอยู่
บูลีน ไม่บังคับ
Chrome 45 ขึ้นไปแท็บปิดเสียงอยู่หรือไม่
- ตรึงอยู่
บูลีน ไม่บังคับ
มีการปักหมุดแท็บไว้หรือไม่
- สถานะ
TabStatus ไม่บังคับ
สถานะการโหลดแท็บ
- title
สตริง ไม่บังคับ
จับคู่ชื่อหน้าเว็บกับรูปแบบ ระบบจะไม่สนใจพร็อพเพอร์ตี้นี้หากส่วนขยายไม่มีสิทธิ์
"tabs"
หรือสิทธิ์โฮสต์สําหรับหน้าเว็บ - URL
string | string[] ไม่บังคับ
จับคู่แท็บกับรูปแบบ URL อย่างน้อย 1 รายการ ตัวระบุส่วนย่อยไม่ตรงกัน ระบบจะไม่สนใจพร็อพเพอร์ตี้นี้หากส่วนขยายไม่มีสิทธิ์
"tabs"
หรือสิทธิ์โฮสต์สําหรับหน้าเว็บ - windowId
ตัวเลข ไม่บังคับ
รหัสของหน้าต่างหลัก หรือ
windows.WINDOW_ID_CURRENT
สำหรับหน้าต่างปัจจุบัน - windowType
WindowType ไม่บังคับ
ประเภทของหน้าต่างที่มีแท็บอยู่
-
- Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้(result: Tab[]) => void
- ผลลัพธ์
แท็บ[]
-
การคืนสินค้า
-
Promise<Tab[]>
Chrome 88 ขึ้นไปไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะคลายสภาพเป็นประเภทเดียวกับที่ส่งไปยังการเรียกกลับ
reload()
chrome.tabs.reload(
tabId?: number,
reloadProperties?: object,
callback?: function,
)
โหลดแท็บซ้ำ
พารามิเตอร์
- tabId
ตัวเลข ไม่บังคับ
รหัสของแท็บที่จะโหลดซ้ำ โดยค่าเริ่มต้นจะเป็นแท็บที่เลือกในหน้าต่างปัจจุบัน
- reloadProperties
ออบเจ็กต์ ไม่บังคับ
- bypassCache
บูลีน ไม่บังคับ
เลือกว่าจะข้ามการแคชในเครื่องหรือไม่ ค่าเริ่มต้นคือ
false
-
- Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 88 ขึ้นไปไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะคลายสภาพเป็นประเภทเดียวกับที่ส่งไปยังการเรียกกลับ
remove()
chrome.tabs.remove(
tabIds: number | number[],
callback?: function,
)
ปิดแท็บอย่างน้อย 1 แท็บ
พารามิเตอร์
- tabIds
ตัวเลข | ตัวเลข[]
รหัสแท็บหรือรายการรหัสแท็บที่จะปิด
- Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 88 ขึ้นไปไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะคลายสภาพเป็นประเภทเดียวกับที่ส่งไปยังการเรียกกลับ
sendMessage()
chrome.tabs.sendMessage(
tabId: number,
message: any,
options?: object,
callback?: function,
)
ส่งข้อความเดียวไปยังสคริปต์เนื้อหาในแท็บที่ระบุ พร้อมการเรียกกลับที่ไม่บังคับให้ทํางานเมื่อมีการตอบกลับ ระบบจะเรียกเหตุการณ์ runtime.onMessage
ในสคริปต์เนื้อหาแต่ละรายการที่ทํางานในแท็บที่ระบุสําหรับส่วนขยายปัจจุบัน
พารามิเตอร์
- tabId
ตัวเลข
- ข้อความ
ใดๆ
ข้อความที่จะส่ง ข้อความนี้ควรเป็นออบเจ็กต์ที่แปลงเป็น JSON ได้
- ตัวเลือก
ออบเจ็กต์ ไม่บังคับ
- Callback
ฟังก์ชัน ไม่บังคับ
Chrome 99 ขึ้นไปพารามิเตอร์
callback
จะมีลักษณะดังนี้(response: any) => void
- การตอบกลับ
ใดๆ
ออบเจ็กต์การตอบกลับ JSON ที่ส่งโดยตัวแฮนเดิลของข้อความ หากเกิดข้อผิดพลาดขณะเชื่อมต่อกับแท็บที่ระบุ ระบบจะเรียกใช้การเรียกกลับโดยไม่มีอาร์กิวเมนต์และตั้งค่า
runtime.lastError
เป็นข้อความแสดงข้อผิดพลาด
-
การคืนสินค้า
-
Promise<any>
Chrome 99 ขึ้นไปไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะคลายสภาพเป็นประเภทเดียวกับที่ส่งไปยังการเรียกกลับ
setZoom()
chrome.tabs.setZoom(
tabId?: number,
zoomFactor: number,
callback?: function,
)
ซูมแท็บที่ระบุ
พารามิเตอร์
- tabId
ตัวเลข ไม่บังคับ
รหัสของแท็บที่จะซูม โดยค่าเริ่มต้นจะเป็นแท็บที่ใช้งานอยู่ของหน้าต่างปัจจุบัน
- zoomFactor
ตัวเลข
ระดับการซูมใหม่ ค่า
0
จะตั้งค่าแท็บเป็นปัจจัยการซูมเริ่มต้นปัจจุบัน ค่าที่มากกว่า0
จะระบุตัวคูณการซูม (อาจไม่ใช่ค่าเริ่มต้น) สำหรับแท็บ - Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 88 ขึ้นไปไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะคลายสภาพเป็นประเภทเดียวกับที่ส่งไปยังการเรียกกลับ
setZoomSettings()
chrome.tabs.setZoomSettings(
tabId?: number,
zoomSettings: ZoomSettings,
callback?: function,
)
ตั้งค่าการซูมสำหรับแท็บที่ระบุ ซึ่งจะกำหนดวิธีจัดการการเปลี่ยนแปลงการซูม การตั้งค่าเหล่านี้จะรีเซ็ตเป็นค่าเริ่มต้นเมื่อไปยังส่วนต่างๆ ของแท็บ
พารามิเตอร์
- tabId
ตัวเลข ไม่บังคับ
รหัสของแท็บที่จะเปลี่ยนการตั้งค่าการซูม โดยค่าเริ่มต้นจะเป็นแท็บที่ใช้งานอยู่ของหน้าต่างปัจจุบัน
- zoomSettings
กำหนดวิธีจัดการการเปลี่ยนแปลงการซูมและขอบเขต
- Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 88 ขึ้นไปไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะคลายสภาพเป็นประเภทเดียวกับที่ส่งไปยังการเรียกกลับ
ungroup()
chrome.tabs.ungroup(
tabIds: number | [number, ...number[]],
callback?: function,
)
นำแท็บอย่างน้อย 1 รายการออกจากกลุ่มที่เกี่ยวข้อง หากกลุ่มใดว่างเปล่า ระบบจะลบกลุ่มนั้น
พารามิเตอร์
- tabIds
ตัวเลข | [ตัวเลข, ...ตัวเลข[]]
รหัสแท็บหรือรายการรหัสแท็บที่จะนำออกจากกลุ่มที่เกี่ยวข้อง
- Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
ไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะคลายสภาพเป็นประเภทเดียวกับที่ส่งไปยังการเรียกกลับ
update()
chrome.tabs.update(
tabId?: number,
updateProperties: object,
callback?: function,
)
แก้ไขพร็อพเพอร์ตี้ของแท็บ ระบบจะไม่แก้ไขพร็อพเพอร์ตี้ที่ไม่ได้ระบุใน updateProperties
พารามิเตอร์
- tabId
ตัวเลข ไม่บังคับ
ค่าเริ่มต้นคือแท็บที่เลือกของหน้าต่างปัจจุบัน
- updateProperties
ออบเจ็กต์
- ใช้งาน
บูลีน ไม่บังคับ
แท็บควรทำงานอยู่ไหม ไม่ส่งผลต่อโฟกัสของหน้าต่าง (ดู
windows.update
) - autoDiscardable
บูลีน ไม่บังคับ
Chrome 54 ขึ้นไปเบราว์เซอร์ควรทิ้งแท็บโดยอัตโนมัติเมื่อทรัพยากรเหลือน้อยหรือไม่
- ไฮไลต์ไว้
บูลีน ไม่บังคับ
เพิ่มหรือนำแท็บออกจากรายการที่เลือกอยู่ในปัจจุบัน
- ปิดเสียงอยู่
บูลีน ไม่บังคับ
Chrome 45 ขึ้นไปแท็บควรปิดเสียงหรือไม่
- openerTabId
ตัวเลข ไม่บังคับ
รหัสของแท็บที่เปิดแท็บนี้ หากระบุ แท็บที่เปิดต้องอยู่ในหน้าต่างเดียวกับแท็บนี้
- ตรึงอยู่
บูลีน ไม่บังคับ
ควรจะปักหมุดแท็บไว้ไหม
- เลือกแล้ว
บูลีน ไม่บังคับ
เลิกใช้งานโปรดใช้ไฮไลต์
กำหนดว่าควรเลือกแท็บหรือไม่
- URL
สตริง ไม่บังคับ
URL ที่จะไปยังแท็บ ระบบไม่รองรับ URL ของ JavaScript ให้ใช้
scripting.executeScript
แทน
-
- Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้(tab?: Tab) => void
การคืนสินค้า
-
Promise<Tab | undefined>
Chrome 88 ขึ้นไปไฟล์ Manifest เวอร์ชัน 3 ขึ้นไปรองรับ Promise แต่มี Callback ไว้เพื่อให้ใช้กับเวอร์ชันก่อนหน้าได้ คุณใช้ทั้ง 2 รูปแบบในการเรียกใช้ฟังก์ชันเดียวกันไม่ได้ พรอมต์จะคลายสภาพเป็นประเภทเดียวกับที่ส่งไปยังการเรียกกลับ
กิจกรรม
onActivated
chrome.tabs.onActivated.addListener(
callback: function,
)
ทำงานเมื่อแท็บที่ใช้งานอยู่ในหน้าต่างมีการเปลี่ยนแปลง โปรดทราบว่าระบบอาจไม่ได้ตั้งค่า URL ของแท็บในขณะที่เหตุการณ์นี้เริ่มทํางาน แต่คุณสามารถฟังเหตุการณ์ onUpdated เพื่อให้ระบบแจ้งเตือนเมื่อตั้งค่า URL แล้ว
พารามิเตอร์
- Callback
ฟังก์ชัน
พารามิเตอร์
callback
จะมีลักษณะดังนี้(activeInfo: object) => void
- activeInfo
ออบเจ็กต์
- tabId
ตัวเลข
รหัสของแท็บที่ใช้งานอยู่
- windowId
ตัวเลข
รหัสของหน้าต่างที่มีการเปลี่ยนแปลงแท็บที่ใช้งานอยู่
-
-
onAttached
chrome.tabs.onAttached.addListener(
callback: function,
)
เรียกใช้เมื่อแท็บแนบอยู่กับหน้าต่าง เช่น มีการย้ายแท็บไปมาระหว่างหน้าต่าง
พารามิเตอร์
- Callback
ฟังก์ชัน
พารามิเตอร์
callback
จะมีลักษณะดังนี้(tabId: number, attachInfo: object) => void
- tabId
ตัวเลข
- attachInfo
ออบเจ็กต์
- newPosition
ตัวเลข
- newWindowId
ตัวเลข
-
-
onCreated
chrome.tabs.onCreated.addListener(
callback: function,
)
เริ่มทํางานเมื่อสร้างแท็บ โปรดทราบว่าระบบอาจไม่ได้ตั้งค่า URL ของแท็บและการเป็นสมาชิกกลุ่มแท็บในขณะที่มีการเรียกเหตุการณ์นี้ แต่คุณสามารถฟังเหตุการณ์ onUpdated เพื่อให้ระบบแจ้งเตือนเมื่อตั้งค่า URL หรือเพิ่มแท็บลงในกลุ่มแท็บ
onDetached
chrome.tabs.onDetached.addListener(
callback: function,
)
เรียกใช้เมื่อมีการแยกแท็บออกจากหน้าต่าง เช่น มีการย้ายแท็บไปมาระหว่างหน้าต่าง
พารามิเตอร์
- Callback
ฟังก์ชัน
พารามิเตอร์
callback
จะมีลักษณะดังนี้(tabId: number, detachInfo: object) => void
- tabId
ตัวเลข
- detachInfo
ออบเจ็กต์
- oldPosition
ตัวเลข
- oldWindowId
ตัวเลข
-
-
onHighlighted
chrome.tabs.onHighlighted.addListener(
callback: function,
)
เรียกใช้เมื่อแท็บที่ไฮไลต์หรือเลือกในหน้าต่างมีการเปลี่ยนแปลง
พารามิเตอร์
- Callback
ฟังก์ชัน
พารามิเตอร์
callback
จะมีลักษณะดังนี้(highlightInfo: object) => void
- highlightInfo
ออบเจ็กต์
- tabIds
number[]
แท็บที่ไฮไลต์ทั้งหมดในหน้าต่าง
- windowId
ตัวเลข
หน้าต่างที่มีการเปลี่ยนแปลงแท็บ
-
-
onMoved
chrome.tabs.onMoved.addListener(
callback: function,
)
เรียกใช้เมื่อมีการย้ายแท็บภายในหน้าต่าง ระบบจะเรียกเหตุการณ์การย้ายเพียงรายการเดียว ซึ่งแสดงถึงแท็บที่ผู้ใช้ย้ายโดยตรง ระบบจะไม่เรียกเหตุการณ์การย้ายสำหรับแท็บอื่นๆ ที่ต้องย้ายตามแท็บที่ย้ายด้วยตนเอง เหตุการณ์นี้จะไม่เริ่มทํางานเมื่อมีการย้ายแท็บไปมาระหว่างหน้าต่าง ดูรายละเอียดได้ที่ tabs.onDetached
พารามิเตอร์
- Callback
ฟังก์ชัน
พารามิเตอร์
callback
จะมีลักษณะดังนี้(tabId: number, moveInfo: object) => void
- tabId
ตัวเลข
- moveInfo
ออบเจ็กต์
- fromIndex
ตัวเลข
- toIndex
ตัวเลข
- windowId
ตัวเลข
-
-
onRemoved
chrome.tabs.onRemoved.addListener(
callback: function,
)
เริ่มทํางานเมื่อมีการปิดแท็บ
พารามิเตอร์
- Callback
ฟังก์ชัน
พารามิเตอร์
callback
จะมีลักษณะดังนี้(tabId: number, removeInfo: object) => void
- tabId
ตัวเลข
- removeInfo
ออบเจ็กต์
- isWindowClosing
บูลีน
เป็นจริงเมื่อแท็บถูกปิดเนื่องจากหน้าต่างหลักถูกปิด
- windowId
ตัวเลข
หน้าต่างที่มีแท็บปิดอยู่
-
-
onReplaced
chrome.tabs.onReplaced.addListener(
callback: function,
)
เรียกใช้เมื่อแท็บหนึ่งถูกแทนที่ด้วยแท็บอื่นเนื่องจากการแสดงผลล่วงหน้าหรือการแสดงผลทันที
พารามิเตอร์
- Callback
ฟังก์ชัน
พารามิเตอร์
callback
จะมีลักษณะดังนี้(addedTabId: number, removedTabId: number) => void
- addedTabId
ตัวเลข
- removedTabId
ตัวเลข
-
onUpdated
chrome.tabs.onUpdated.addListener(
callback: function,
)
เริ่มทํางานเมื่อมีการอัปเดตแท็บ
พารามิเตอร์
- Callback
ฟังก์ชัน
พารามิเตอร์
callback
จะมีลักษณะดังนี้(tabId: number, changeInfo: object, tab: Tab) => void
- tabId
ตัวเลข
- changeInfo
ออบเจ็กต์
- audible
บูลีน ไม่บังคับ
Chrome 45 ขึ้นไปสถานะเสียงใหม่ของแท็บ
- autoDiscardable
บูลีน ไม่บังคับ
Chrome 54 ขึ้นไปสถานะใหม่ของแท็บที่ทิ้งโดยอัตโนมัติ
- ทิ้งแล้ว
บูลีน ไม่บังคับ
Chrome 54 ขึ้นไปสถานะใหม่ของแท็บที่ทิ้ง
- favIconUrl
สตริง ไม่บังคับ
URL ไอคอน Fav ใหม่ของแท็บ
- หยุดทำงาน
บูลีน ไม่บังคับ
Chrome 132 ขึ้นไปสถานะใหม่ของแท็บที่หยุดทำงาน
- groupId
ตัวเลข ไม่บังคับ
Chrome 88 ขึ้นไปกลุ่มใหม่ของแท็บ
- mutedInfo
MutedInfo ไม่บังคับ
Chrome 46 ขึ้นไปสถานะการปิดเสียงใหม่ของแท็บและเหตุผลของการเปลี่ยนแปลง
- ตรึงอยู่
บูลีน ไม่บังคับ
สถานะใหม่ของแท็บที่ปักหมุดไว้
- สถานะ
TabStatus ไม่บังคับ
สถานะการโหลดของแท็บ
- title
สตริง ไม่บังคับ
Chrome 48 ขึ้นไปชื่อใหม่ของแท็บ
- URL
สตริง ไม่บังคับ
URL ของแท็บ หากมีการเปลี่ยนแปลง
-
- แท็บ
-
onZoomChange
chrome.tabs.onZoomChange.addListener(
callback: function,
)
เริ่มทํางานเมื่อซูมแท็บ
พารามิเตอร์
- Callback
ฟังก์ชัน
พารามิเตอร์
callback
จะมีลักษณะดังนี้(ZoomChangeInfo: object) => void
- ZoomChangeInfo
ออบเจ็กต์
- newZoomFactor
ตัวเลข
- oldZoomFactor
ตัวเลข
- tabId
ตัวเลข
- zoomSettings
-
-