คำอธิบาย
ใช้ chrome.tabs
API เพื่อโต้ตอบกับระบบแท็บของเบราว์เซอร์ คุณสามารถใช้ API นี้เพื่อสร้าง แก้ไข และจัดเรียงแท็บในเบราว์เซอร์ได้
ภาพรวม
Tabs API ไม่เพียงมีฟีเจอร์สำหรับการจัดการแท็บ แต่ยังตรวจหาภาษาของแท็บ ถ่ายภาพหน้าจอ และสื่อสารกับ Content Script ของแท็บได้ด้วย
สิทธิ์
ฟีเจอร์ส่วนใหญ่ไม่ต้องใช้สิทธิ์ใดๆ ในการใช้งาน เช่น สร้างแท็บใหม่ โหลดแท็บซ้ำ ไปยัง URL อื่นๆ เป็นต้น
นักพัฒนาซอฟต์แวร์ควรทราบสิทธิ์ 3 อย่างเมื่อทำงานกับ Tabs API
- สิทธิ์ "แท็บ"
- สิทธิ์นี้ไม่ได้ให้สิทธิ์เข้าถึงเนมสเปซ
chrome.tabs
แต่จะ ให้สิทธิ์ส่วนขยายในการเรียกใช้tabs.query()
กับพร็อพเพอร์ตี้ที่ละเอียดอ่อน 4 รายการ ในอินสแตนซ์tabs.Tab
ได้แก่url
,pendingUrl
,title
และfavIconUrl
- สิทธิ์ของโฮสต์
- สิทธิ์ของโฮสต์อนุญาตให้ส่วนขยายอ่านและค้นหาพร็อพเพอร์ตี้ที่มีความละเอียดอ่อน 4 รายการของแท็บที่ตรงกัน
tabs.Tab
นอกจากนี้ยังโต้ตอบกับแท็บที่ตรงกันได้โดยตรงโดยใช้วิธีการต่างๆ เช่นtabs.captureVisibleTab()
tabs.executeScript()
,tabs.insertCSS()
และtabs.removeCSS()
- สิทธิ์ "activeTab"
activeTab
ให้สิทธิ์โฮสต์ชั่วคราวแก่ส่วนขยายสำหรับแท็บปัจจุบันเพื่อตอบสนองต่อการเรียกใช้ของผู้ใช้activeTab
จะไม่ทริกเกอร์คำเตือนใดๆ ซึ่งต่างจากสิทธิ์ของโฮสต์
ไฟล์ Manifest
ตัวอย่างวิธีประกาศสิทธิ์แต่ละรายการใน manifest มีดังนี้
{ "name": "My extension", ... "permissions": [ "tabs" ], ... }
{ "name": "My extension", ... "host_permissions": [ "http://*/*", "https://*/*" ], ... }
{ "name": "My extension", ... "permissions": [ "activeTab" ], ... }
กรณีการใช้งาน
ส่วนต่อไปนี้แสดงกรณีการใช้งานที่พบบ่อยบางส่วน
การเปิดหน้าส่วนขยายในแท็บใหม่
รูปแบบทั่วไปของส่วนขยายคือการเปิดหน้าเริ่มต้นใช้งานในแท็บใหม่เมื่อติดตั้งส่วนขยาย ตัวอย่างต่อไปนี้แสดงวิธีดำเนินการ
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."); } }); }
ส่งข้อความไปยัง Content Script ของแท็บที่เลือก
ตัวอย่างนี้แสดงให้เห็นว่า Service Worker ของส่วนขยายจะสื่อสารกับ Content Script ในแท็บเบราว์เซอร์ที่เฉพาะเจาะจงได้อย่างไรโดยใช้ 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"
การดำเนินการที่ผู้ใช้ป้อนจะตั้งค่าสถานะปิดเสียง
"จับภาพ"
เริ่มการจับภาพแท็บ ซึ่งบังคับให้เปลี่ยนสถานะเป็นปิดเสียง
"ส่วนขยาย"
ส่วนขยายที่ระบุโดยฟิลด์ extensionId จะตั้งค่าสถานะปิดเสียง
Tab
พร็อพเพอร์ตี้
- ใช้งาน
บูลีน
แท็บใช้งานอยู่ในหน้าต่างหรือไม่ ไม่ได้หมายความว่าหน้าต่างจะโฟกัส
- audible
บูลีน ไม่บังคับ
Chrome 45 ขึ้นไปแท็บส่งเสียงในช่วง 2-3 วินาทีที่ผ่านมาหรือไม่ (แต่คุณอาจไม่ได้ยินหากแท็บปิดเสียงอยู่ด้วย) เทียบเท่ากับการแสดงตัวบ่งชี้ "เสียงของลำโพง"
- autoDiscardable
บูลีน
Chrome 54 ขึ้นไปกำหนดว่าเบราว์เซอร์จะทิ้งแท็บโดยอัตโนมัติเมื่อทรัพยากรเหลือน้อยได้หรือไม่
- ทิ้งแล้ว
บูลีน
Chrome 54 ขึ้นไปแท็บถูกทิ้งหรือไม่ แท็บที่ทิ้งคือแท็บที่ระบบนำเนื้อหาออกจากหน่วยความจำแล้ว แต่ยังคงแสดงอยู่ในแถบแท็บ ระบบจะโหลดเนื้อหาของวิดเจ็ตอีกครั้งเมื่อเปิดใช้งานในครั้งถัดไป
- favIconUrl
สตริง ไม่บังคับ
URL ของไอคอน Fav ของแท็บ พร็อพเพอร์ตี้นี้จะแสดงก็ต่อเมื่อส่วนขยายมีสิทธิ์
"tabs"
หรือมีสิทธิ์ของโฮสต์สำหรับหน้าเว็บ นอกจากนี้ยังอาจเป็นสตริงว่างหากแท็บกำลังโหลด - ถูกระงับ
บูลีน
Chrome 132 ขึ้นไปแท็บค้างหรือไม่ แท็บที่ตรึงจะเรียกใช้งานไม่ได้ รวมถึงตัวแฮนเดิลเหตุการณ์หรือตัวจับเวลา โดยจะปรากฏในแถบแท็บและเนื้อหาจะโหลดในหน่วยความจำ ระบบจะยกเลิกการระงับเมื่อเปิดใช้งาน
- groupId
ตัวเลข
Chrome 88 ขึ้นไปรหัสของกลุ่มที่แท็บเป็นของ
- ส่วนสูง
หมายเลข ไม่บังคับ
ความสูงของแท็บในหน่วยพิกเซล
- ไฮไลต์ไว้
บูลีน
มีการไฮไลต์แท็บหรือไม่
- id
หมายเลข ไม่บังคับ
รหัสของแท็บ รหัสแท็บจะไม่ซ้ำกันภายในเซสชันของเบราว์เซอร์ ในบางกรณี ระบบอาจไม่กำหนดรหัสให้กับแท็บ เช่น เมื่อค้นหาแท็บภายนอกโดยใช้ API
sessions
ในกรณีนี้อาจมีรหัสเซสชัน นอกจากนี้ยังตั้งค่ารหัสแท็บเป็นchrome.tabs.TAB_ID_NONE
สำหรับแอปและหน้าต่างเครื่องมือสำหรับนักพัฒนาเว็บได้ด้วย - ไม่ระบุตัวตน
บูลีน
แท็บอยู่ในหน้าต่างที่ไม่ระบุตัวตนหรือไม่
- ดัชนี
ตัวเลข
ดัชนีฐาน 0 ของแท็บภายในหน้าต่าง
- lastAccessed
ตัวเลข
Chrome 121 ขึ้นไปเวลาล่าสุดที่แท็บทำงานในหน้าต่างเป็นจำนวนมิลลิวินาทีนับตั้งแต่ Epoch
- mutedInfo
MutedInfo ไม่บังคับ
Chrome 46 ขึ้นไปสถานะปิดเสียงของแท็บและเหตุผลของการเปลี่ยนแปลงสถานะครั้งล่าสุด
- openerTabId
หมายเลข ไม่บังคับ
รหัสของแท็บที่เปิดแท็บนี้ (หากมี) พร็อพเพอร์ตี้นี้จะแสดงก็ต่อเมื่อแท็บที่เปิดยังคงอยู่
- pendingUrl
สตริง ไม่บังคับ
Chrome 79 ขึ้นไปURL ที่แท็บกำลังไปยังก่อนที่จะคอมมิต พร็อพเพอร์ตี้นี้จะแสดงก็ต่อเมื่อส่วนขยายมีสิทธิ์
"tabs"
หรือมีสิทธิ์ของโฮสต์สำหรับหน้าเว็บและมีการนำทางที่รอดำเนินการ - ตรึงอยู่
บูลีน
แท็บปักหมุดอยู่หรือไม่
- เลือกแล้ว
บูลีน
เลิกใช้งานแล้วโปรดใช้
tabs.Tab.highlighted
เลือกว่าจะเลือกแท็บหรือไม่
- sessionId
สตริง ไม่บังคับ
รหัสเซสชันที่ใช้ในการระบุแท็บที่ได้รับจาก API
sessions
โดยไม่ซ้ำกัน - สถานะ
TabStatus ไม่บังคับ
สถานะการโหลดของแท็บ
- title
สตริง ไม่บังคับ
ชื่อแท็บ พร็อพเพอร์ตี้นี้จะแสดงก็ต่อเมื่อส่วนขยายมีสิทธิ์
"tabs"
หรือมีสิทธิ์ของโฮสต์สำหรับหน้าเว็บ - URL
สตริง ไม่บังคับ
URL ที่คอมมิตล่าสุดของเฟรมหลักของแท็บ พร็อพเพอร์ตี้นี้จะแสดงก็ต่อเมื่อส่วนขยายมีสิทธิ์
"tabs"
หรือมีสิทธิ์ของโฮสต์สำหรับหน้าเว็บ อาจเป็นสตริงว่างหากแท็บยังไม่ได้คอมมิต ดูTab.pendingUrl
เพิ่มเติม - ความกว้าง
หมายเลข ไม่บังคับ
ความกว้างของแท็บในหน่วยพิกเซล
- windowId
ตัวเลข
รหัสของหน้าต่างที่มีแท็บ
TabStatus
สถานะการโหลดของแท็บ
ค่าแจกแจง
"เลิกโหลด"
"กำลังโหลด"
"เสร็จสมบูรณ์"
WindowType
ประเภทของหน้าต่าง
ค่าแจกแจง
"ปกติ"
"ป๊อปอัป"
"panel"
"app"
"devtools"
ZoomSettings
กำหนดวิธีจัดการการเปลี่ยนแปลงการซูมในแท็บและขอบเขต
พร็อพเพอร์ตี้
- defaultZoomFactor
หมายเลข ไม่บังคับ
Chrome 43 ขึ้นไปใช้เพื่อส่งคืนระดับการซูมเริ่มต้นสำหรับแท็บปัจจุบันในการเรียกใช้ tabs.getZoomSettings
- โหมด
ZoomSettingsMode ไม่บังคับ
กำหนดวิธีจัดการการเปลี่ยนแปลงการซูม เช่น หน่วยงานใดมีหน้าที่รับผิดชอบในการปรับขนาดหน้าเว็บจริง ค่าเริ่มต้นคือ
automatic
- ขอบเขต
ZoomSettingsScope ไม่บังคับ
กำหนดว่าการเปลี่ยนแปลงการซูมจะยังคงอยู่สำหรับต้นทางของหน้าเว็บ หรือจะมีผลในแท็บนี้เท่านั้น โดยค่าเริ่มต้นจะเป็น
per-origin
เมื่ออยู่ในโหมดautomatic
และเป็นper-tab
ในกรณีอื่นๆ
ZoomSettingsMode
กำหนดวิธีจัดการการเปลี่ยนแปลงการซูม เช่น หน่วยงานใดมีหน้าที่รับผิดชอบในการปรับขนาดหน้าเว็บจริง ค่าเริ่มต้นคือ automatic
ค่าแจกแจง
"อัตโนมัติ"
เบราว์เซอร์จะจัดการการเปลี่ยนแปลงการซูมโดยอัตโนมัติ
"ด้วยตนเอง"
ลบล้างการจัดการการเปลี่ยนแปลงการซูมอัตโนมัติ ระบบจะยังคงส่งเหตุการณ์ onZoomChange
และส่วนขยายมีหน้าที่รับฟังเหตุการณ์นี้และปรับขนาดหน้าเว็บด้วยตนเอง โหมดนี้ไม่รองรับการซูม per-origin
จึงไม่สนใจการตั้งค่าการซูม scope
และถือว่าเป็นการซูม per-tab
"ปิดใช้"
ปิดใช้การซูมทั้งหมดในแท็บ แท็บจะกลับไปที่ระดับการซูมเริ่มต้น และระบบจะไม่สนใจการเปลี่ยนแปลงการซูมทั้งหมดที่พยายามทำ
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
ดัชนีที่แสดงถึงการไม่มีดัชนีแท็บในแถบแท็บ
ค่า
-1
เมธอด
captureVisibleTab()
chrome.tabs.captureVisibleTab(
windowId?: number,
options?: ImageDetails,
callback?: function,
): Promise<string>
จับภาพพื้นที่ที่มองเห็นได้ของแท็บที่ใช้งานอยู่ในปัจจุบันในหน้าต่างที่ระบุ หากต้องการเรียกใช้เมธอดนี้ ส่วนขยายต้องมีสิทธิ์ <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 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
connect()
chrome.tabs.connect(
tabId: number,
connectInfo?: object,
): runtime.Port
เชื่อมต่อกับ Content Script ในแท็บที่ระบุ ระบบจะทริกเกอร์เหตุการณ์ runtime.onConnect
ใน Content Script แต่ละรายการที่ทำงานในแท็บที่ระบุสำหรับส่วนขยายปัจจุบัน ดูรายละเอียดเพิ่มเติมได้ที่การรับส่งข้อความของ Content Script
พารามิเตอร์
- tabId
ตัวเลข
- connectInfo
object ไม่บังคับ
- documentId
สตริง ไม่บังคับ
Chrome 106 ขึ้นไปเปิดพอร์ตไปยังเอกสารที่เฉพาะเจาะจงซึ่งระบุโดย
documentId
แทนที่จะเป็นเฟรมทั้งหมดในแท็บ - frameId
หมายเลข ไม่บังคับ
เปิดพอร์ตไปยังเฟรมที่เฉพาะเจาะจงซึ่งระบุโดย
frameId
แทนที่จะเป็นเฟรมทั้งหมดในแท็บ - ชื่อ
สตริง ไม่บังคับ
ส่งไปยัง onConnect สำหรับ Content Script ที่รอให้เหตุการณ์การเชื่อมต่อเกิดขึ้น
-
การคืนสินค้า
-
พอร์ตที่ใช้สื่อสารกับ Content Script ที่ทำงานในแท็บที่ระบุได้ ระบบจะทริกเกอร์เหตุการณ์
runtime.Port
ของพอร์ตหากแท็บปิดหรือไม่มีอยู่
create()
chrome.tabs.create(
createProperties: object,
callback?: function,
): Promise<Tab>
สร้างแท็บใหม่
พารามิเตอร์
- createProperties
ออบเจ็กต์
- ใช้งาน
บูลีน ไม่บังคับ
แท็บควรกลายเป็นแท็บที่ใช้งานอยู่ในหน้าต่างหรือไม่ ไม่มีผลต่อการโฟกัสหน้าต่าง (ดู
windows.update
) ค่าเริ่มต้นคือtrue
- ดัชนี
หมายเลข ไม่บังคับ
ตำแหน่งที่แท็บควรอยู่ในหน้าต่าง ค่าที่ระบุจะถูกจำกัดให้อยู่ระหว่าง 0 ถึงจำนวนแท็บในหน้าต่าง
- openerTabId
หมายเลข ไม่บังคับ
รหัสของแท็บที่เปิดแท็บนี้ หากระบุไว้ แท็บที่เปิดต้องอยู่ในหน้าต่างเดียวกันกับแท็บที่สร้างขึ้นใหม่
- ตรึงอยู่
บูลีน ไม่บังคับ
ควรปักหมุดแท็บไหม ค่าเริ่มต้นคือ
false
- เลือกแล้ว
บูลีน ไม่บังคับ
เลิกใช้งานแล้วโปรดใช้ active
แท็บควรกลายเป็นแท็บที่เลือกในหน้าต่างหรือไม่ ค่าเริ่มต้นคือ
true
- URL
สตริง ไม่บังคับ
URL ที่ใช้เพื่อไปยังแท็บในตอนแรก URL แบบเต็มต้องมี Scheme (เช่น 'http://www.google.com' ไม่ใช่ 'www.google.com') URL สัมพัทธ์จะสัมพันธ์กับหน้าปัจจุบันภายในส่วนขยาย ค่าเริ่มต้นจะเป็นหน้าแท็บใหม่
- windowId
หมายเลข ไม่บังคับ
หน้าต่างที่จะใช้สร้างแท็บใหม่ ค่าเริ่มต้นคือหน้าต่างปัจจุบัน
-
- callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(tab: Tab) => void
- แท็บ
แท็บที่สร้างขึ้น
-
การคืนสินค้า
-
Promise<Tab>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
detectLanguage()
chrome.tabs.detectLanguage(
tabId?: number,
callback?: function,
): Promise<string>
ตรวจหาภาษาหลักของเนื้อหาในแท็บ
พารามิเตอร์
- tabId
หมายเลข ไม่บังคับ
ค่าเริ่มต้นคือแท็บที่ใช้งานอยู่ของหน้าต่างปัจจุบัน
- callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(language: string) => void
- ภาษา
สตริง
รหัสภาษา ISO เช่น
en
หรือfr
ดูรายการภาษาทั้งหมดที่วิธีการนี้รองรับได้ที่ kLanguageInfoTable ระบบจะตรวจสอบคอลัมน์ที่ 2-4 และแสดงผลค่าแรกที่ไม่ใช่ NULL ยกเว้นภาษาจีนตัวย่อซึ่งจะแสดงผลzh-CN
สำหรับภาษาที่ไม่รู้จัก/ไม่ได้กำหนด ระบบจะแสดงผลund
-
การคืนสินค้า
-
Promise<string>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
discard()
chrome.tabs.discard(
tabId?: number,
callback?: function,
): Promise<Tab | undefined>
ทิ้งแท็บจากหน่วยความจำ แท็บที่ทิ้งจะยังคงปรากฏในแถบแท็บและจะโหลดซ้ำเมื่อเปิดใช้งาน
พารามิเตอร์
- tabId
หมายเลข ไม่บังคับ
รหัสของแท็บที่จะทิ้ง หากระบุไว้ ระบบจะทิ้งแท็บดังกล่าว เว้นแต่แท็บจะใช้งานอยู่หรือถูกทิ้งไปแล้ว หากไม่ระบุ เบราว์เซอร์จะทิ้งแท็บที่มีความสำคัญน้อยที่สุด การดำเนินการนี้อาจไม่สำเร็จหากไม่มีแท็บที่ทิ้งได้
- callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(tab?: Tab) => void
- แท็บ
แท็บ ไม่บังคับ
แท็บที่ทิ้ง หากทิ้งสำเร็จ หรือไม่เช่นนั้นจะเป็น undefined
-
การคืนสินค้า
-
Promise<Tab | undefined>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
duplicate()
chrome.tabs.duplicate(
tabId: number,
callback?: function,
): Promise<Tab | undefined>
ทำซ้ำแท็บ
พารามิเตอร์
- tabId
ตัวเลข
รหัสของแท็บที่จะทำซ้ำ
- callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(tab?: Tab) => void
การคืนสินค้า
-
Promise<Tab | undefined>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
executeScript()
chrome.tabs.executeScript(
tabId?: number,
details: InjectDetails,
callback?: function,
): Promise<any[] | undefined>
แทนที่ด้วย scripting.executeScript
ในไฟล์ Manifest V3
แทรกโค้ด JavaScript ลงในหน้าเว็บ โปรดดูรายละเอียดที่ส่วนการแทรกแบบเป็นโปรแกรมในเอกสารประกอบเกี่ยวกับ Content Script
พารามิเตอร์
- tabId
หมายเลข ไม่บังคับ
รหัสของแท็บที่จะเรียกใช้สคริปต์ โดยค่าเริ่มต้นจะเป็นแท็บที่ใช้งานอยู่ในหน้าต่างปัจจุบัน
- รายละเอียด
รายละเอียดของสคริปต์ที่จะเรียกใช้ ต้องตั้งค่าพร็อพเพอร์ตี้โค้ดหรือไฟล์ แต่จะตั้งค่าทั้ง 2 อย่างพร้อมกันไม่ได้
- callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(result?: any[]) => void
- ผลลัพธ์
any[] ไม่บังคับ
ผลลัพธ์ของสคริปต์ในทุกเฟรมที่แทรก
-
การคืนสินค้า
-
Promise<any[] | undefined>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
get()
chrome.tabs.get(
tabId: number,
callback?: function,
): Promise<Tab>
ดึงรายละเอียดเกี่ยวกับแท็บที่ระบุ
พารามิเตอร์
- tabId
ตัวเลข
- callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(tab: Tab) => void
- แท็บ
-
การคืนสินค้า
-
Promise<Tab>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
getAllInWindow()
chrome.tabs.getAllInWindow(
windowId?: number,
callback?: function,
): Promise<Tab[]>
โปรดใช้ tabs.query
{windowId: windowId}
รับรายละเอียดเกี่ยวกับแท็บทั้งหมดในหน้าต่างที่ระบุ
พารามิเตอร์
- windowId
หมายเลข ไม่บังคับ
ค่าเริ่มต้นคือหน้าต่างปัจจุบัน
- callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(tabs: Tab[]) => void
- แท็บ
แท็บ[]
-
การคืนสินค้า
-
Promise<Tab[]>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
getCurrent()
chrome.tabs.getCurrent(
callback?: function,
): Promise<Tab | undefined>
รับแท็บที่เรียกใช้สคริปต์นี้ แสดง undefined
หากเรียกจากบริบทที่ไม่ใช่แท็บ (เช่น หน้าพื้นหลังหรือมุมมองป๊อปอัป)
พารามิเตอร์
การคืนสินค้า
-
Promise<Tab | undefined>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
getSelected()
chrome.tabs.getSelected(
windowId?: number,
callback?: function,
): Promise<Tab>
โปรดใช้ tabs.query
{active: true}
รับแท็บที่เลือกในหน้าต่างที่ระบุ
พารามิเตอร์
- windowId
หมายเลข ไม่บังคับ
ค่าเริ่มต้นคือหน้าต่างปัจจุบัน
- callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(tab: Tab) => void
- แท็บ
-
การคืนสินค้า
-
Promise<Tab>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
getZoom()
chrome.tabs.getZoom(
tabId?: number,
callback?: function,
): Promise<number>
รับปัจจัยการซูมปัจจุบันของแท็บที่ระบุ
พารามิเตอร์
- tabId
หมายเลข ไม่บังคับ
รหัสของแท็บที่จะรับปัจจัยการซูมปัจจุบันจากแท็บนั้น โดยค่าเริ่มต้นจะเป็นแท็บที่ใช้งานอยู่ของหน้าต่างปัจจุบัน
- callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(zoomFactor: number) => void
- zoomFactor
ตัวเลข
ระดับการซูมปัจจุบันของแท็บ
-
การคืนสินค้า
-
Promise<number>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
getZoomSettings()
chrome.tabs.getZoomSettings(
tabId?: number,
callback?: function,
): Promise<ZoomSettings>
รับการตั้งค่าการซูมปัจจุบันของแท็บที่ระบุ
พารามิเตอร์
- tabId
หมายเลข ไม่บังคับ
รหัสของแท็บที่จะรับการตั้งค่าการซูมปัจจุบัน ค่าเริ่มต้นคือแท็บที่ใช้งานอยู่ของหน้าต่างปัจจุบัน
- callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(zoomSettings: ZoomSettings) => void
- zoomSettings
การตั้งค่าการซูมปัจจุบันของแท็บ
-
การคืนสินค้า
-
Promise<ZoomSettings>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
goBack()
chrome.tabs.goBack(
tabId?: number,
callback?: function,
): Promise<void>
กลับไปที่หน้าก่อนหน้า (หากมี)
พารามิเตอร์
- tabId
หมายเลข ไม่บังคับ
รหัสของแท็บที่จะย้อนกลับ ค่าเริ่มต้นคือแท็บที่เลือกของหน้าต่างปัจจุบัน
- callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
goForward()
chrome.tabs.goForward(
tabId?: number,
callback?: function,
): Promise<void>
ไปข้างหน้าไปยังหน้าถัดไป (หากมี)
พารามิเตอร์
- tabId
หมายเลข ไม่บังคับ
รหัสของแท็บที่จะไปยังแท็บถัดไป โดยค่าเริ่มต้นจะเป็นแท็บที่เลือกของหน้าต่างปัจจุบัน
- callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
group()
chrome.tabs.group(
options: object,
callback?: function,
): Promise<number>
เพิ่มแท็บอย่างน้อย 1 แท็บไปยังกลุ่มที่ระบุ หรือหากไม่ได้ระบุกลุ่ม ระบบจะเพิ่มแท็บที่ระบุไปยังกลุ่มที่สร้างขึ้นใหม่
พารามิเตอร์
- ตัวเลือก
ออบเจ็กต์
- createProperties
object ไม่บังคับ
การกำหนดค่าสำหรับการสร้างกลุ่ม ใช้ไม่ได้หากระบุ groupId ไว้แล้ว
- windowId
หมายเลข ไม่บังคับ
หน้าต่างของกลุ่มใหม่ ค่าเริ่มต้นคือหน้าต่างปัจจุบัน
-
- groupId
หมายเลข ไม่บังคับ
รหัสของกลุ่มที่จะเพิ่มแท็บ หากไม่ได้ระบุ ระบบจะสร้างกลุ่มใหม่
- tabIds
number | [number, ...number[]]
รหัสแท็บหรือรายการรหัสแท็บที่จะเพิ่มลงในกลุ่มที่ระบุ
-
- callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(groupId: number) => void
- groupId
ตัวเลข
รหัสของกลุ่มที่มีการเพิ่มแท็บ
-
การคืนสินค้า
-
Promise<number>
ระบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
highlight()
chrome.tabs.highlight(
highlightInfo: object,
callback?: function,
): Promise<windows.Window>
ไฮไลต์แท็บที่ระบุและโฟกัสที่แท็บแรกของกลุ่ม จะดูเหมือนไม่มีอะไรเกิดขึ้นหากแท็บที่ระบุเปิดใช้งานอยู่
พารามิเตอร์
- highlightInfo
ออบเจ็กต์
- แท็บ
number | number[]
ดัชนีแท็บอย่างน้อย 1 รายการที่จะไฮไลต์
- windowId
หมายเลข ไม่บังคับ
หน้าต่างที่มีแท็บ
-
- callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(window: Window) => void
- หน้าต่าง
มีรายละเอียดเกี่ยวกับหน้าต่างที่มีการไฮไลต์แท็บ
-
การคืนสินค้า
-
Promise<windows.Window>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
insertCSS()
chrome.tabs.insertCSS(
tabId?: number,
details: InjectDetails,
callback?: function,
): Promise<void>
แทนที่ด้วย scripting.insertCSS
ในไฟล์ Manifest V3
แทรก CSS ลงในหน้าเว็บ คุณนำรูปแบบที่แทรกด้วยวิธีนี้ออกได้โดยใช้ scripting.removeCSS
โปรดดูรายละเอียดที่ส่วนการแทรกแบบเป็นโปรแกรมในเอกสารประกอบเกี่ยวกับ Content Script
พารามิเตอร์
- tabId
หมายเลข ไม่บังคับ
รหัสของแท็บที่จะแทรก CSS โดยค่าเริ่มต้นจะเป็นแท็บที่ใช้งานอยู่ในหน้าต่างปัจจุบัน
- รายละเอียด
รายละเอียดของข้อความ CSS ที่จะแทรก ต้องตั้งค่าพร็อพเพอร์ตี้โค้ดหรือไฟล์ แต่จะตั้งค่าทั้ง 2 อย่างพร้อมกันไม่ได้
- callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
move()
chrome.tabs.move(
tabIds: number | number[],
moveProperties: object,
callback?: function,
): Promise<Tab | Tab[]>
ย้ายแท็บอย่างน้อย 1 แท็บไปยังตำแหน่งใหม่ภายในหน้าต่าง หรือไปยังหน้าต่างใหม่ โปรดทราบว่าคุณจะย้ายแท็บได้เฉพาะในหน้าต่างปกติ (window.type === "normal") เท่านั้น
พารามิเตอร์
- tabIds
number | number[]
รหัสแท็บหรือรายการรหัสแท็บที่จะย้าย
- moveProperties
ออบเจ็กต์
- ดัชนี
ตัวเลข
ตำแหน่งที่จะย้ายหน้าต่างไป ใช้
-1
เพื่อวางแท็บไว้ที่ท้ายหน้าต่าง - windowId
หมายเลข ไม่บังคับ
ค่าเริ่มต้นคือหน้าต่างที่แท็บอยู่
-
- callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(tabs: Tab | Tab[]) => void
การคืนสินค้า
- Chrome 88 ขึ้นไป
ระบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
query()
chrome.tabs.query(
queryInfo: object,
callback?: function,
): Promise<Tab[]>
รับแท็บทั้งหมดที่มีพร็อพเพอร์ตี้ที่ระบุ หรือแท็บทั้งหมดหากไม่ได้ระบุพร็อพเพอร์ตี้
พารามิเตอร์
- queryInfo
ออบเจ็กต์
- ใช้งาน
บูลีน ไม่บังคับ
แท็บใช้งานอยู่ในหน้าต่างหรือไม่
- audible
บูลีน ไม่บังคับ
Chrome 45 ขึ้นไปแท็บมีเสียงหรือไม่
- autoDiscardable
บูลีน ไม่บังคับ
Chrome 54 ขึ้นไปกำหนดว่าเบราว์เซอร์จะทิ้งแท็บโดยอัตโนมัติได้หรือไม่เมื่อทรัพยากรเหลือน้อย
- currentWindow
บูลีน ไม่บังคับ
แท็บอยู่ในหน้าต่างปัจจุบันหรือไม่
- ทิ้งแล้ว
บูลีน ไม่บังคับ
Chrome 54 ขึ้นไปมีการทิ้งแท็บหรือไม่ แท็บที่ทิ้งคือแท็บที่ระบบนำเนื้อหาออกจากหน่วยความจำแล้ว แต่ยังคงแสดงอยู่ในแถบแท็บ ระบบจะโหลดเนื้อหาของวิดเจ็ตอีกครั้งเมื่อเปิดใช้งานในครั้งถัดไป
- ถูกระงับ
บูลีน ไม่บังคับ
Chrome 132 ขึ้นไปแท็บถูกตรึงหรือไม่ แท็บที่ตรึงจะเรียกใช้งานไม่ได้ รวมถึงตัวแฮนเดิลเหตุการณ์หรือตัวจับเวลา โดยจะปรากฏในแถบแท็บและเนื้อหาจะโหลดในหน่วยความจำ ระบบจะยกเลิกการระงับเมื่อเปิดใช้งาน
- groupId
หมายเลข ไม่บังคับ
Chrome 88 ขึ้นไปรหัสของกลุ่มที่มีแท็บ หรือ
tabGroups.TAB_GROUP_ID_NONE
สำหรับแท็บที่ไม่ได้จัดกลุ่ม - ไฮไลต์ไว้
บูลีน ไม่บังคับ
ไฮไลต์แท็บหรือไม่
- ดัชนี
หมายเลข ไม่บังคับ
ตำแหน่งของแท็บภายในหน้าต่าง
- lastFocusedWindow
บูลีน ไม่บังคับ
แท็บอยู่ในหน้าต่างที่โฟกัสล่าสุดหรือไม่
- ปิดเสียงอยู่
บูลีน ไม่บังคับ
Chrome 45 ขึ้นไปแท็บปิดเสียงอยู่ไหม
- ตรึงอยู่
บูลีน ไม่บังคับ
แท็บปักหมุดอยู่หรือไม่
- splitViewId
หมายเลข ไม่บังคับ
รอดำเนินการรหัสของมุมมองแบบแยกที่แท็บอยู่ หรือ
tabs.SPLIT_VIEW_ID_NONE
สำหรับแท็บที่ไม่ได้อยู่ในมุมมองแบบแยก - สถานะ
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 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
reload()
chrome.tabs.reload(
tabId?: number,
reloadProperties?: object,
callback?: function,
): Promise<void>
โหลดแท็บซ้ำ
พารามิเตอร์
- tabId
หมายเลข ไม่บังคับ
รหัสของแท็บที่จะโหลดซ้ำ โดยค่าเริ่มต้นจะเป็นแท็บที่เลือกของหน้าต่างปัจจุบัน
- reloadProperties
object ไม่บังคับ
- bypassCache
บูลีน ไม่บังคับ
เลือกว่าจะข้ามการแคชในเครื่องไหม ค่าเริ่มต้นคือ
false
-
- callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
remove()
chrome.tabs.remove(
tabIds: number | number[],
callback?: function,
): Promise<void>
ปิดแท็บอย่างน้อย 1 แท็บ
พารามิเตอร์
- tabIds
number | number[]
รหัสแท็บหรือรายการรหัสแท็บที่จะปิด
- callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
removeCSS()
chrome.tabs.removeCSS(
tabId?: number,
details: DeleteInjectionDetails,
callback?: function,
): Promise<void>
แทนที่ด้วย scripting.removeCSS
ในไฟล์ Manifest V3
นำ CSS ออกจากหน้าที่ก่อนหน้านี้มีการแทรกโดยการเรียกใช้ scripting.insertCSS
พารามิเตอร์
- tabId
หมายเลข ไม่บังคับ
รหัสของแท็บที่จะนำ CSS ออก โดยค่าเริ่มต้นจะเป็นแท็บที่ใช้งานอยู่ในหน้าต่างปัจจุบัน
- รายละเอียด
รายละเอียดของข้อความ CSS ที่จะนำออก ต้องตั้งค่าพร็อพเพอร์ตี้โค้ดหรือไฟล์ แต่จะตั้งค่าทั้ง 2 อย่างพร้อมกันไม่ได้
- callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
sendMessage()
chrome.tabs.sendMessage(
tabId: number,
message: any,
options?: object,
callback?: function,
): Promise<any>
ส่งข้อความเดียวไปยัง Content Script ในแท็บที่ระบุ โดยมีฟังก์ชันเรียกกลับที่ไม่บังคับให้เรียกใช้เมื่อมีการส่งการตอบกลับกลับมา ระบบจะทริกเกอร์เหตุการณ์ runtime.onMessage
ใน Content Script แต่ละรายการที่ทำงานในแท็บที่ระบุสำหรับส่วนขยายปัจจุบัน
พารามิเตอร์
- tabId
ตัวเลข
- ข้อความ
ใดๆ
ข้อความที่จะส่ง ข้อความนี้ควรเป็นออบเจ็กต์ที่แปลงเป็น JSON ได้
- ตัวเลือก
object ไม่บังคับ
- callback
ฟังก์ชัน ไม่บังคับ
Chrome 99 ขึ้นไปพารามิเตอร์
callback
มีลักษณะดังนี้(response: any) => void
- การตอบกลับ
ใดๆ
ออบเจ็กต์การตอบกลับ JSON ที่ตัวแฮนเดิลของข้อความส่ง หากเกิดข้อผิดพลาดขณะเชื่อมต่อกับแท็บที่ระบุ ระบบจะเรียกใช้การเรียกกลับโดยไม่มีอาร์กิวเมนต์ และตั้งค่า
runtime.lastError
เป็นข้อความแสดงข้อผิดพลาด
-
การคืนสินค้า
-
Promise<any>
Chrome 99 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
sendRequest()
chrome.tabs.sendRequest(
tabId: number,
request: any,
callback?: function,
): Promise<any>
โปรดใช้ runtime.sendMessage
ส่งคำขอเดียวไปยัง Content Script ในแท็บที่ระบุ โดยมีฟังก์ชันเรียกกลับที่ไม่บังคับให้เรียกใช้เมื่อมีการส่งการตอบกลับ ระบบจะทริกเกอร์เหตุการณ์ extension.onRequest
ใน Content Script แต่ละรายการที่ทำงานในแท็บที่ระบุสำหรับส่วนขยายปัจจุบัน
พารามิเตอร์
- tabId
ตัวเลข
- ส่งคำขอ
ใดๆ
- callback
ฟังก์ชัน ไม่บังคับ
Chrome 99 ขึ้นไปพารามิเตอร์
callback
มีลักษณะดังนี้(response: any) => void
- การตอบกลับ
ใดๆ
ออบเจ็กต์การตอบกลับ JSON ที่ตัวแฮนเดิลของคำขอส่ง หากเกิดข้อผิดพลาดขณะเชื่อมต่อกับแท็บที่ระบุ ระบบจะเรียกใช้การเรียกกลับโดยไม่มีอาร์กิวเมนต์ และตั้งค่า
runtime.lastError
เป็นข้อความแสดงข้อผิดพลาด
-
การคืนสินค้า
-
Promise<any>
Chrome 99 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
setZoom()
chrome.tabs.setZoom(
tabId?: number,
zoomFactor: number,
callback?: function,
): Promise<void>
ซูมแท็บที่ระบุ
พารามิเตอร์
- tabId
หมายเลข ไม่บังคับ
รหัสของแท็บที่จะซูม โดยค่าเริ่มต้นจะเป็นแท็บที่ใช้งานอยู่ในหน้าต่างปัจจุบัน
- zoomFactor
ตัวเลข
ค่าตัวคูณการซูมใหม่ ค่า
0
จะตั้งค่าแท็บเป็นปัจจัยการซูมเริ่มต้นปัจจุบัน ค่าที่มากกว่า0
จะระบุปัจจัยการซูม (อาจไม่ใช่ค่าเริ่มต้น) สำหรับแท็บ - callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
setZoomSettings()
chrome.tabs.setZoomSettings(
tabId?: number,
zoomSettings: ZoomSettings,
callback?: function,
): Promise<void>
ตั้งค่าการซูมสำหรับแท็บที่ระบุ ซึ่งกำหนดวิธีจัดการการเปลี่ยนแปลงการซูม การตั้งค่าเหล่านี้จะรีเซ็ตเป็นค่าเริ่มต้นเมื่อไปยังแท็บ
พารามิเตอร์
- tabId
หมายเลข ไม่บังคับ
รหัสของแท็บที่จะเปลี่ยนการตั้งค่าการซูม โดยค่าเริ่มต้นจะเป็นแท็บที่ใช้งานอยู่ในหน้าต่างปัจจุบัน
- zoomSettings
กำหนดวิธีจัดการการเปลี่ยนแปลงการซูมและขอบเขต
- callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
ungroup()
chrome.tabs.ungroup(
tabIds: number | [number, ...number[]],
callback?: function,
): Promise<void>
นำแท็บอย่างน้อย 1 แท็บออกจากกลุ่มที่เกี่ยวข้อง หากกลุ่มใดว่างเปล่า ระบบจะลบกลุ่มนั้น
พารามิเตอร์
- tabIds
number | [number, ...number[]]
รหัสแท็บหรือรายการรหัสแท็บที่จะนำออกจากกลุ่มที่เกี่ยวข้อง
- callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
ระบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
update()
chrome.tabs.update(
tabId?: number,
updateProperties: object,
callback?: function,
): Promise<Tab | undefined>
แก้ไขคุณสมบัติของแท็บ ระบบจะไม่แก้ไขพร็อพเพอร์ตี้ที่ไม่ได้ระบุไว้ใน 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 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
กิจกรรม
onActivated
chrome.tabs.onActivated.addListener(
callback: function,
)
ทริกเกอร์เมื่อแท็บที่ใช้งานอยู่ในหน้าต่างมีการเปลี่ยนแปลง โปรดทราบว่าอาจไม่ได้ตั้งค่า URL ของแท็บในเวลาที่เหตุการณ์นี้ทริกเกอร์ แต่คุณสามารถฟังเหตุการณ์ onUpdated เพื่อรับการแจ้งเตือนเมื่อมีการตั้งค่า URL
พารามิเตอร์
- callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(activeInfo: object) => void
- activeInfo
ออบเจ็กต์
- tabId
ตัวเลข
รหัสของแท็บที่ใช้งานอยู่
- windowId
ตัวเลข
รหัสของหน้าต่างที่แท็บที่ใช้งานอยู่มีการเปลี่ยนแปลง
-
-
onActiveChanged
chrome.tabs.onActiveChanged.addListener(
callback: function,
)
โปรดใช้ tabs.onActivated
ทริกเกอร์เมื่อแท็บที่เลือกในหน้าต่างมีการเปลี่ยนแปลง โปรดทราบว่าอาจไม่ได้ตั้งค่า URL ของแท็บในเวลาที่เหตุการณ์นี้ทริกเกอร์ แต่คุณสามารถฟังเหตุการณ์ tabs.onUpdated
เพื่อรับการแจ้งเตือนเมื่อมีการตั้งค่า URL
พารามิเตอร์
- callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(tabId: number, selectInfo: object) => void
- tabId
ตัวเลข
- selectInfo
ออบเจ็กต์
- 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
ตัวเลข
-
-
onHighlightChanged
chrome.tabs.onHighlightChanged.addListener(
callback: function,
)
โปรดใช้ tabs.onHighlighted
ทริกเกอร์เมื่อแท็บที่ไฮไลต์หรือเลือกในหน้าต่างมีการเปลี่ยนแปลง
พารามิเตอร์
- callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(selectInfo: object) => void
- selectInfo
ออบเจ็กต์
- tabIds
number[]
แท็บที่ไฮไลต์ทั้งหมดในหน้าต่าง
- windowId
ตัวเลข
หน้าต่างที่มีการเปลี่ยนแปลงแท็บ
-
-
onHighlighted
chrome.tabs.onHighlighted.addListener(
callback: function,
)
ทริกเกอร์เมื่อแท็บที่ไฮไลต์หรือเลือกในหน้าต่างมีการเปลี่ยนแปลง
พารามิเตอร์
- callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(highlightInfo: object) => void
- highlightInfo
ออบเจ็กต์
- tabIds
number[]
แท็บที่ไฮไลต์ทั้งหมดในหน้าต่าง
- windowId
ตัวเลข
หน้าต่างที่มีการเปลี่ยนแปลงแท็บ
-
-
onMoved
chrome.tabs.onMoved.addListener(
callback: function,
)
ทริกเกอร์เมื่อมีการย้ายแท็บภายในหน้าต่าง ระบบจะทริกเกอร์เหตุการณ์ย้ายเพียง 1 รายการ ซึ่งแสดงถึงแท็บที่ผู้ใช้ย้ายโดยตรง ระบบจะไม่ทริกเกอร์เหตุการณ์การย้ายสำหรับแท็บอื่นๆ ที่ต้องย้ายเพื่อตอบสนองต่อแท็บที่ย้ายด้วยตนเอง เหตุการณ์นี้จะไม่เริ่มทำงานเมื่อมีการย้ายแท็บระหว่างหน้าต่าง ดูรายละเอียดได้ที่ 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
ตัวเลข
-
onSelectionChanged
chrome.tabs.onSelectionChanged.addListener(
callback: function,
)
โปรดใช้ tabs.onActivated
ทริกเกอร์เมื่อแท็บที่เลือกในหน้าต่างมีการเปลี่ยนแปลง
พารามิเตอร์
- callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(tabId: number, selectInfo: object) => void
- tabId
ตัวเลข
- selectInfo
ออบเจ็กต์
- windowId
ตัวเลข
รหัสของหน้าต่างที่แท็บที่เลือกมีการเปลี่ยนแปลง
-
-
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 ขึ้นไปสถานะปิดเสียงใหม่ของแท็บและเหตุผลของการเปลี่ยนแปลง
- ตรึงอยู่
บูลีน ไม่บังคับ
สถานะใหม่ของแท็บที่ปักหมุด
- splitViewId
หมายเลข ไม่บังคับ
รอดำเนินการมุมมองแบบแยกใหม่ของแท็บ
- สถานะ
TabStatus ไม่บังคับ
สถานะการโหลดของแท็บ
- title
สตริง ไม่บังคับ
Chrome 48 ขึ้นไปชื่อใหม่ของแท็บ
- URL
สตริง ไม่บังคับ
URL ของแท็บหากมีการเปลี่ยนแปลง
-
- แท็บ
-
onZoomChange
chrome.tabs.onZoomChange.addListener(
callback: function,
)
เริ่มทำงานเมื่อมีการซูมแท็บ
พารามิเตอร์
- callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(ZoomChangeInfo: object) => void
- ZoomChangeInfo
ออบเจ็กต์
- newZoomFactor
ตัวเลข
- oldZoomFactor
ตัวเลข
- tabId
ตัวเลข
- zoomSettings
-
-