refresh date: 2026-09-25 robots: noindex
คำอธิบาย
ใช้ chrome.tabs API เพื่อโต้ตอบกับระบบแท็บของเบราว์เซอร์ คุณสามารถใช้ API นี้เพื่อสร้าง แก้ไข และจัดเรียงแท็บในเบราว์เซอร์ใหม่ได้
ภาพรวม
Tabs API ไม่เพียงแต่มีฟีเจอร์สำหรับการจัดการและควบคุมแท็บเท่านั้น แต่ยังตรวจจับภาษาของแท็บ ถ่ายภาพหน้าจอ และสื่อสารกับสคริปต์เนื้อหาของแท็บได้ด้วย
สิทธิ์
ฟีเจอร์ส่วนใหญ่ไม่จำเป็นต้องใช้สิทธิ์ใดๆ ในการใช้งาน เช่น การสร้างแท็บใหม่ การโหลดแท็บซ้ำ การไปยัง URL อื่น เป็นต้น
นักพัฒนาซอฟต์แวร์ควรทราบถึงสิทธิ์ 3 รายการเมื่อทำงานกับ Tabs API
- สิทธิ์ "tabs"
- สิทธิ์นี้ไม่ได้ให้สิทธิ์เข้าถึงเนมสเปซ
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.");
}
});
}
ส่งข้อความไปยังสคริปต์เนื้อหาของแท็บที่เลือก
ตัวอย่างนี้แสดงวิธีที่ 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 ขึ้นไปรหัสของกลุ่มที่มีแท็บอยู่
-
ความสูง
number ไม่บังคับ
ความสูงของแท็บเป็นพิกเซล
-
ไฮไลต์ไว้
บูลีน
แท็บมีการไฮไลต์หรือไม่
-
id
number ไม่บังคับ
รหัสของแท็บ รหัสแท็บจะไม่ซ้ำกันภายในเซสชันของเบราว์เซอร์ ในบางกรณี ระบบอาจไม่กำหนดรหัสให้กับแท็บ เช่น เมื่อค้นหาแท็บภายนอกโดยใช้
sessionsAPI ซึ่งในกรณีนี้อาจมีรหัสเซสชันอยู่ นอกจากนี้ยังตั้งค่ารหัสแท็บเป็นchrome.tabs.TAB_ID_NONEสำหรับแอปและหน้าต่างเครื่องมือสำหรับนักพัฒนาเว็บได้ด้วย -
ไม่ระบุตัวตน
บูลีน
แท็บอยู่ในหน้าต่างที่ไม่ระบุตัวตนหรือไม่
-
ดัชนี
ตัวเลข
ดัชนีแบบ 0 ของแท็บภายในหน้าต่าง
-
lastAccessed
ตัวเลข
Chrome 121 ขึ้นไปครั้งล่าสุดที่แท็บทำงานในหน้าต่างเป็นจำนวนมิลลิวินาทีนับตั้งแต่ Epoch
-
mutedInfo
MutedInfo ไม่บังคับ
Chrome 46 ขึ้นไปสถานะการปิดเสียงของแท็บและเหตุผลที่เปลี่ยนสถานะครั้งล่าสุด
-
openerTabId
number ไม่บังคับ
รหัสของแท็บที่เปิดแท็บนี้ (หากมี) พร็อพเพอร์ตี้นี้จะแสดงก็ต่อเมื่อแท็บที่เปิดยังคงอยู่เท่านั้น
-
pendingUrl
สตริง ไม่บังคับ
Chrome 79 ขึ้นไปURL ที่แท็บกำลังไปยังก่อนที่จะคอมมิต พร็อพเพอร์ตี้นี้จะปรากฏก็ต่อเมื่อส่วนขยายมีสิทธิ์
"tabs"หรือมีสิทธิ์ของโฮสต์สำหรับหน้าเว็บ และมีการนำทางที่รอดำเนินการ -
ตรึงอยู่
บูลีน
มีการปักหมุดแท็บหรือไม่
-
เลือกแล้ว
บูลีน
เลิกใช้งานแล้วโปรดใช้
tabs.Tab.highlightedเลือกว่าจะเลือกแท็บหรือไม่
-
sessionId
สตริง ไม่บังคับ
รหัสเซสชันที่ใช้ในการระบุแท็บที่ได้จาก
sessionsAPI โดยไม่ซ้ำกัน -
splitViewId
number ไม่บังคับ
Chrome 140 ขึ้นไปรหัสของมุมมองแยกที่มีแท็บอยู่
-
สถานะ
TabStatus ไม่บังคับ
สถานะการโหลดของแท็บ
-
title
สตริง ไม่บังคับ
ชื่อของแท็บ พร็อพเพอร์ตี้นี้จะปรากฏก็ต่อเมื่อส่วนขยายมีสิทธิ์
"tabs"หรือมีสิทธิ์ของโฮสต์สำหรับหน้าเว็บเท่านั้น -
URL
สตริง ไม่บังคับ
URL ที่คอมมิตล่าสุดของเฟรมหลักของแท็บ พร็อพเพอร์ตี้นี้จะปรากฏก็ต่อเมื่อส่วนขยายมีสิทธิ์
"tabs"หรือมีสิทธิ์ของโฮสต์สำหรับหน้าเว็บเท่านั้น อาจเป็นสตริงว่างหากยังไม่ได้คอมมิตแท็บ โปรดดูTab.pendingUrl -
ความกว้าง
number ไม่บังคับ
ความกว้างของแท็บเป็นพิกเซล
-
windowId
ตัวเลข
รหัสของหน้าต่างที่มีแท็บ
TabStatus
สถานะการโหลดของแท็บ
ค่าแจกแจง
"unloaded"
"loading"
"complete"
WindowType
ประเภทของกรอบเวลา
ค่าแจกแจง
"normal"
"popup"
"panel"
"app"
"devtools"
ZoomSettings
กำหนดวิธีจัดการการเปลี่ยนแปลงการซูมในแท็บและขอบเขตของการซูม
พร็อพเพอร์ตี้
-
defaultZoomFactor
number ไม่บังคับ
Chrome 43 ขึ้นไปใช้เพื่อแสดงระดับการซูมเริ่มต้นสำหรับแท็บปัจจุบันในการเรียกใช้ tabs.getZoomSettings
-
โหมด
ZoomSettingsMode ไม่บังคับ
กำหนดวิธีจัดการการเปลี่ยนแปลงการซูม กล่าวคือ เอนทิตีใดมีหน้าที่รับผิดชอบในการปรับขนาดหน้าเว็บจริง โดยค่าเริ่มต้นคือ
automatic -
ขอบเขต
ZoomSettingsScope ไม่บังคับ
กำหนดว่าการเปลี่ยนแปลงการซูมจะยังคงอยู่สำหรับต้นทางของหน้าเว็บ หรือมีผลเฉพาะในแท็บนี้เท่านั้น โดยค่าเริ่มต้นจะเป็น
per-originเมื่ออยู่ในโหมดautomaticและเป็นper-tabในกรณีอื่นๆ
ZoomSettingsMode
กำหนดวิธีจัดการการเปลี่ยนแปลงการซูม กล่าวคือ เอนทิตีใดมีหน้าที่รับผิดชอบในการปรับขนาดหน้าเว็บจริง โดยค่าเริ่มต้นคือ automatic
ค่าแจกแจง
"automatic"
เบราว์เซอร์จะจัดการการเปลี่ยนแปลงการซูมโดยอัตโนมัติ
"manual"
ลบล้างการจัดการการเปลี่ยนแปลงการซูมโดยอัตโนมัติ ระบบจะยังคงส่งเหตุการณ์ onZoomChange และส่วนขยายมีหน้าที่รับฟังเหตุการณ์นี้และปรับขนาดหน้าเว็บด้วยตนเอง โหมดนี้ไม่รองรับการซูม per-origin จึงละเว้นการตั้งค่าการซูม scope และถือว่า per-tab
"disabled"
ปิดใช้การซูมทั้งหมดในแท็บ แท็บจะเปลี่ยนกลับไปเป็นระดับการซูมเริ่มต้น และระบบจะไม่สนใจการเปลี่ยนแปลงการซูมที่พยายามทำทั้งหมด
ZoomSettingsScope
กำหนดว่าการเปลี่ยนแปลงการซูมจะยังคงอยู่สำหรับต้นทางของหน้าเว็บ หรือมีผลเฉพาะในแท็บนี้เท่านั้น โดยค่าเริ่มต้นจะเป็น per-origin เมื่ออยู่ในโหมด automatic และเป็น per-tab ในกรณีอื่นๆ
ค่าแจกแจง
"per-origin"
การเปลี่ยนแปลงการซูมจะยังคงอยู่ในต้นทางของหน้าที่ซูม กล่าวคือ แท็บอื่นๆ ทั้งหมดที่ไปยังต้นทางเดียวกันจะซูมด้วย นอกจากนี้ ระบบจะบันทึกการเปลี่ยนแปลงการซูมของ per-origin ไว้กับต้นทาง ซึ่งหมายความว่าเมื่อไปยังหน้าอื่นๆ ในต้นทางเดียวกัน ระบบจะซูมหน้าทั้งหมดด้วยปัจจัยการซูมเดียวกัน ขอบเขต per-origin ใช้ได้เฉพาะในโหมด automatic เท่านั้น
"per-tab"
การเปลี่ยนแปลงการซูมจะมีผลเฉพาะในแท็บนี้ และการเปลี่ยนแปลงการซูมในแท็บอื่นๆ จะไม่มีผลต่อการซูมของแท็บนี้ นอกจากนี้ per-tab การเปลี่ยนแปลงการซูมจะรีเซ็ตเมื่อมีการไปยังส่วนต่างๆ การไปยังส่วนต่างๆ ของแท็บจะโหลดหน้าเว็บด้วยปัจจัยการซูม per-origin เสมอ
พร็อพเพอร์ตี้
MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND
จำนวนครั้งสูงสุดที่เรียกใช้ captureVisibleTab ได้ต่อวินาที captureVisibleTab มีค่าใช้จ่ายสูงและไม่ควรเรียกใช้บ่อยเกินไป
ค่า
2
SPLIT_VIEW_ID_NONE
รหัสที่แสดงถึงการไม่มีแท็บแยก
ค่า
-1
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
number ไม่บังคับ
หน้าต่างเป้าหมาย ค่าเริ่มต้นคือหน้าต่างปัจจุบัน
-
ตัวเลือก
ImageDetails ไม่บังคับ
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(dataUrl: string) => void
-
dataUrl
สตริง
URL ข้อมูลที่เข้ารหัสรูปภาพของพื้นที่ที่มองเห็นได้ของแท็บที่บันทึกไว้ อาจกำหนดให้กับพร็อพเพอร์ตี้ "src" ขององค์ประกอบ
imgของ HTML เพื่อแสดงผล
-
การคืนสินค้า
-
Promise<string>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
connect()
chrome.tabs.connect(
tabId: number,
connectInfo?: object,
): runtime.Port
เชื่อมต่อกับสคริปต์เนื้อหาในแท็บที่ระบุ เหตุการณ์ runtime.onConnect จะเริ่มทำงานในสคริปต์เนื้อหาแต่ละรายการที่ทำงานในแท็บที่ระบุสำหรับส่วนขยายปัจจุบัน ดูรายละเอียดเพิ่มเติมได้ที่การรับส่งข้อความสคริปต์เนื้อหา
พารามิเตอร์
-
tabId
ตัวเลข
-
connectInfo
object ไม่บังคับ
-
documentId
สตริง ไม่บังคับ
Chrome 106 ขึ้นไปเปิดพอร์ตไปยังเอกสารที่ระบุซึ่งระบุโดย
documentIdแทนเฟรมทั้งหมดในแท็บ -
frameId
number ไม่บังคับ
เปิดพอร์ตไปยังเฟรมที่เฉพาะเจาะจงซึ่งระบุโดย
frameIdแทนเฟรมทั้งหมดในแท็บ -
name
สตริง ไม่บังคับ
ส่งไปยัง onConnect สำหรับสคริปต์เนื้อหาที่รอฟังเหตุการณ์การเชื่อมต่อ
-
การคืนสินค้า
-
พอร์ตที่ใช้สื่อสารกับสคริปต์เนื้อหาที่ทำงานอยู่ในแท็บที่ระบุได้ เหตุการณ์
runtime.Portของพอร์ตจะเริ่มทำงานหากแท็บปิดหรือไม่มีอยู่
create()
chrome.tabs.create(
createProperties: object,
callback?: function,
): Promise<Tab>
สร้างแท็บใหม่
พารามิเตอร์
-
createProperties
ออบเจ็กต์
-
ใช้งาน
บูลีน ไม่บังคับ
แท็บควรเป็นแท็บที่ใช้งานอยู่ในหน้าต่างหรือไม่ ไม่ส่งผลต่อการโฟกัสหน้าต่าง (ดู
windows.update) ค่าเริ่มต้นคือtrue -
ดัชนี
number ไม่บังคับ
ตำแหน่งที่แท็บควรอยู่ในหน้าต่าง ค่าที่ระบุจะถูกจำกัดให้อยู่ระหว่าง 0 ถึงจำนวนแท็บในหน้าต่าง
-
openerTabId
number ไม่บังคับ
รหัสของแท็บที่เปิดแท็บนี้ หากระบุ แท็บที่เปิดต้องอยู่ในหน้าต่างเดียวกับแท็บที่สร้างขึ้นใหม่
-
ตรึงอยู่
บูลีน ไม่บังคับ
ควรปักหมุดแท็บหรือไม่ ค่าเริ่มต้นคือ
false -
เลือกแล้ว
บูลีน ไม่บังคับ
เลิกใช้งานแล้วโปรดใช้ active
แท็บควรเป็นแท็บที่เลือกในหน้าต่างหรือไม่ ค่าเริ่มต้นคือ
true -
splitWithTabId
number ไม่บังคับ
Chrome 155 ขึ้นไปรหัสของแท็บที่มีอยู่เพื่อสร้างมุมมองแบบแยก หากระบุไว้ แท็บที่แชร์ต้องเป็นไปตามเงื่อนไขต่อไปนี้
- ต้องไม่ใช่แท็บที่แยกอยู่แล้ว
- โดยต้องอยู่ในหน้าต่างเดียวกับแท็บที่สร้างขึ้นใหม่
- หากระบุ
windowIdไว้ รหัสดังกล่าวต้องเหมือนกับรหัสหน้าต่างของแท็บที่แยกหน้าจอด้วย - หากระบุ
indexไว้ ต้องเป็นดัชนีที่อยู่ติดกับแท็บที่แยก และจะส่งผลต่อตำแหน่งสัมพัทธ์ของแท็บที่สร้างใหม่
-
URL
สตริง ไม่บังคับ
URL ที่จะไปยังแท็บในตอนแรก URL แบบเต็มต้องมีรูปแบบ (เช่น "http://www.google.com" ไม่ใช่ "www.google.com") Relative URL จะสัมพันธ์กับหน้าปัจจุบันภายในส่วนขยาย ค่าเริ่มต้นคือหน้าแท็บใหม่
-
windowId
number ไม่บังคับ
หน้าต่างที่จะสร้างแท็บใหม่ ค่าเริ่มต้นคือหน้าต่างปัจจุบัน
-
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(tab: Tab) => void
-
แท็บ
แท็บสร้าง
-
การคืนสินค้า
-
Promise<Tab>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
createSplit()
chrome.tabs.createSplit(
tabIds: [number, number],
callback?: function,
): Promise<number>
แยกแท็บที่มีอยู่ 2 แท็บเป็นมุมมองแบบแยก
พารามิเตอร์
-
tabIds
[number, number]
อาร์เรย์ของรหัสแท็บ 2 รายการเพื่อจับคู่เป็นมุมมองแบบแยก แท็บทั้งหมดต้องเป็นไปตามเงื่อนไขต่อไปนี้
โดยต้องอยู่ติดกัน แอปต้องไม่อยู่ในมุมมองแบบแยกอยู่แล้ว โดยต้องมีสถานะ
windowId,pinnedและgroupIdที่ตรงกัน -
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(splitViewId: number) => void
-
splitViewId
ตัวเลข
รหัสของมุมมองแบบแยกที่สร้างขึ้นใหม่ซึ่งมีแท็บที่ระบุ
-
การคืนสินค้า
-
Promise<number>
ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
detectLanguage()
chrome.tabs.detectLanguage(
tabId?: number,
callback?: function,
): Promise<string>
ตรวจหาภาษาหลักของเนื้อหาในแท็บ
พารามิเตอร์
-
tabId
number ไม่บังคับ
ค่าเริ่มต้นคือแท็บที่ใช้งานอยู่ของหน้าต่างปัจจุบัน
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(language: string) => void
-
ภาษา
สตริง
รหัสภาษา ISO เช่น
enหรือfrดูรายการภาษาทั้งหมดที่เมธอดนี้รองรับได้ที่ kLanguageInfoTable ระบบจะตรวจสอบคอลัมน์ที่ 2 ถึง 4 และแสดงผลค่าที่ไม่ใช่ NULL ค่าแรก ยกเว้นภาษาจีนตัวย่อซึ่งจะแสดงผลเป็นzh-CNสำหรับภาษาที่ไม่รู้จัก/ไม่ได้กำหนด ระบบจะแสดงผลund
-
การคืนสินค้า
-
Promise<string>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
discard()
chrome.tabs.discard(
tabId?: number,
callback?: function,
): Promise<Tab | undefined>
ทิ้งแท็บจากหน่วยความจำ แท็บที่ทิ้งไปจะยังคงปรากฏในแนวแท็บและจะโหลดซ้ำเมื่อเปิดใช้งาน
พารามิเตอร์
-
tabId
number ไม่บังคับ
รหัสของแท็บที่จะทิ้ง หากระบุ ระบบจะทิ้งแท็บนั้น เว้นแต่แท็บจะทำงานอยู่หรือถูกทิ้งไปแล้ว หากไม่ระบุ เบราว์เซอร์จะทิ้งแท็บที่มีความสำคัญน้อยที่สุด ซึ่งอาจดำเนินการไม่สำเร็จหากไม่มีแท็บที่ทิ้งได้
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(tab?: Tab) => void
-
แท็บ
Tab ไม่บังคับ
แท็บที่ทิ้ง หากทิ้งสำเร็จ ไม่เช่นนั้นจะไม่มีการกำหนด
-
การคืนสินค้า
-
Promise<Tab | undefined>
Chrome 88 ขึ้นไปแก้ไขหลังจากดำเนินการเสร็จสมบูรณ์
ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
duplicate()
chrome.tabs.duplicate(
tabId: number,
callback?: function,
): Promise<Tab | undefined>
ทำซ้ำแท็บ
พารามิเตอร์
-
tabId
ตัวเลข
รหัสของแท็บที่จะทำซ้ำ
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(tab?: Tab) => void
การคืนสินค้า
-
Promise<Tab | undefined>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
executeScript()
chrome.tabs.executeScript(
tabId?: number,
details: InjectDetails,
callback?: function,
): Promise<any[] | undefined>
แทนที่ด้วย scripting.executeScript ใน Manifest V3
แทรกโค้ด JavaScript ลงในหน้าเว็บ ดูรายละเอียดได้ที่ส่วนการแทรกแบบเป็นโปรแกรมของเอกสารสคริปต์เนื้อหา
พารามิเตอร์
-
tabId
number ไม่บังคับ
รหัสของแท็บที่จะเรียกใช้สคริปต์ โดยค่าเริ่มต้นจะเป็นแท็บที่ใช้งานอยู่ของหน้าต่างปัจจุบัน
-
รายละเอียด
รายละเอียดของสคริปต์ที่จะเรียกใช้ ต้องตั้งค่าพร็อพเพอร์ตี้โค้ดหรือไฟล์ แต่จะตั้งค่าทั้ง 2 อย่างพร้อมกันไม่ได้
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(result?: any[]) => void
-
ผลลัพธ์
any[] ไม่บังคับ
ผลลัพธ์ของสคริปต์ในทุกเฟรมที่แทรก
-
การคืนสินค้า
-
Promise<any[] | undefined>
Chrome 88 ขึ้นไปแก้ไขหลังจากเรียกใช้ JavaScript ทั้งหมดแล้ว
ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
get()
chrome.tabs.get(
tabId: number,
callback?: function,
): Promise<Tab>
เรียกดูรายละเอียดเกี่ยวกับแท็บที่ระบุ
พารามิเตอร์
-
tabId
ตัวเลข
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(tab: Tab) => void
-
แท็บ
-
การคืนสินค้า
-
Promise<Tab>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
getAllInWindow()
chrome.tabs.getAllInWindow(
windowId?: number,
callback?: function,
): Promise<Tab[]>
โปรดใช้ tabs.query {windowId: windowId}
รับรายละเอียดเกี่ยวกับแท็บทั้งหมดในหน้าต่างที่ระบุ
พารามิเตอร์
-
windowId
number ไม่บังคับ
ค่าเริ่มต้นคือหน้าต่างปัจจุบัน
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(tabs: Tab[]) => void
-
tabs
Tab[]
-
การคืนสินค้า
-
Promise<Tab[]>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
getCurrent()
chrome.tabs.getCurrent(
callback?: function,
): Promise<Tab | undefined>
รับแท็บที่มีการเรียกใช้สคริปต์นี้ แสดงผล undefined หากเรียกจากบริบทที่ไม่ใช่แท็บ (เช่น หน้าพื้นหลังหรือมุมมองป๊อปอัป)
พารามิเตอร์
การคืนสินค้า
-
Promise<Tab | undefined>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
getSelected()
chrome.tabs.getSelected(
windowId?: number,
callback?: function,
): Promise<Tab>
โปรดใช้ tabs.query {active: true}
รับแท็บที่เลือกในหน้าต่างที่ระบุ
พารามิเตอร์
-
windowId
number ไม่บังคับ
ค่าเริ่มต้นคือหน้าต่างปัจจุบัน
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(tab: Tab) => void
-
แท็บ
-
การคืนสินค้า
-
Promise<Tab>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
getZoom()
chrome.tabs.getZoom(
tabId?: number,
callback?: function,
): Promise<number>
รับปัจจัยการซูมปัจจุบันของแท็บที่ระบุ
พารามิเตอร์
-
tabId
number ไม่บังคับ
รหัสของแท็บที่จะรับปัจจัยการซูมปัจจุบัน ค่าเริ่มต้นคือแท็บที่ใช้งานอยู่ของหน้าต่างปัจจุบัน
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(zoomFactor: number) => void
-
zoomFactor
ตัวเลข
ปัจจัยการซูมปัจจุบันของแท็บ
-
การคืนสินค้า
-
Promise<number>
Chrome 88 ขึ้นไปแก้ไขด้วยปัจจัยการซูมปัจจุบันของแท็บหลังจากดึงข้อมูลแล้ว
ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
getZoomSettings()
chrome.tabs.getZoomSettings(
tabId?: number,
callback?: function,
): Promise<ZoomSettings>
รับการตั้งค่าการซูมปัจจุบันของแท็บที่ระบุ
พารามิเตอร์
-
tabId
number ไม่บังคับ
รหัสของแท็บที่จะรับการตั้งค่าการซูมปัจจุบัน ค่าเริ่มต้นคือแท็บที่ใช้งานอยู่ของหน้าต่างปัจจุบัน
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(zoomSettings: ZoomSettings) => void
-
zoomSettings
การตั้งค่าการซูมปัจจุบันของแท็บ
-
การคืนสินค้า
-
Promise<ZoomSettings>
Chrome 88 ขึ้นไปแก้ไขด้วยการตั้งค่าการซูมปัจจุบันของแท็บ
ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
goBack()
chrome.tabs.goBack(
tabId?: number,
callback?: function,
): Promise<void>
กลับไปยังหน้าก่อนหน้า (หากมี)
พารามิเตอร์
-
tabId
number ไม่บังคับ
รหัสของแท็บที่จะย้อนกลับ ค่าเริ่มต้นคือแท็บที่เลือกของหน้าต่างปัจจุบัน
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
goForward()
chrome.tabs.goForward(
tabId?: number,
callback?: function,
): Promise<void>
ไปที่หน้าถัดไป (หากมี)
พารามิเตอร์
-
tabId
number ไม่บังคับ
รหัสของแท็บที่จะไปยังหน้าถัดไป โดยค่าเริ่มต้นจะเป็นแท็บที่เลือกของหน้าต่างปัจจุบัน
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
group()
chrome.tabs.group(
options: object,
callback?: function,
): Promise<number>
เพิ่มแท็บอย่างน้อย 1 แท็บลงในกลุ่มที่ระบุ หรือหากไม่ได้ระบุกลุ่ม ให้เพิ่มแท็บที่ระบุลงในกลุ่มที่สร้างขึ้นใหม่
พารามิเตอร์
-
ตัวเลือก
ออบเจ็กต์
-
createProperties
object ไม่บังคับ
การกำหนดค่าสำหรับการสร้างกลุ่ม ใช้ไม่ได้หากระบุ groupId ไว้แล้ว
-
windowId
number ไม่บังคับ
หน้าต่างของกลุ่มใหม่ ค่าเริ่มต้นคือหน้าต่างปัจจุบัน
-
-
groupId
number ไม่บังคับ
รหัสของกลุ่มที่จะเพิ่มแท็บ หากไม่ระบุ ระบบจะสร้างกลุ่มใหม่
-
tabIds
number | [number, ...number[]]
รหัสแท็บหรือรายการรหัสแท็บที่จะเพิ่มลงในกลุ่มที่ระบุ
-
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(groupId: number) => void
-
groupId
ตัวเลข
รหัสของกลุ่มที่มีการเพิ่มแท็บเข้าไป
-
การคืนสินค้า
-
Promise<number>
ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
highlight()
chrome.tabs.highlight(
highlightInfo: object,
callback?: function,
): Promise<windows.Window>
ไฮไลต์แท็บที่ระบุและโฟกัสที่แท็บแรกของกลุ่ม จะดูเหมือนว่าไม่มีการดำเนินการใดๆ หากแท็บที่ระบุทำงานอยู่
พารามิเตอร์
-
highlightInfo
ออบเจ็กต์
-
tabs
number | number[]
ดัชนีแท็บอย่างน้อย 1 รายการที่จะไฮไลต์
-
windowId
number ไม่บังคับ
หน้าต่างที่มีแท็บ
-
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(window: Window) => void
-
หน้าต่าง
มีรายละเอียดเกี่ยวกับหน้าต่างที่มีการไฮไลต์แท็บ
-
การคืนสินค้า
-
Promise<windows.Window>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
insertCSS()
chrome.tabs.insertCSS(
tabId?: number,
details: InjectDetails,
callback?: function,
): Promise<void>
แทนที่ด้วย scripting.insertCSS ใน Manifest V3
แทรก CSS ลงในหน้าเว็บ คุณนำสไตล์ที่แทรกด้วยวิธีนี้ออกได้โดยใช้ scripting.removeCSS ดูรายละเอียดได้ที่ส่วนการแทรกแบบเป็นโปรแกรมของเอกสารสคริปต์เนื้อหา
พารามิเตอร์
-
tabId
number ไม่บังคับ
รหัสของแท็บที่จะแทรก CSS โดยค่าเริ่มต้นจะเป็นแท็บที่ใช้งานอยู่ของหน้าต่างปัจจุบัน
-
รายละเอียด
รายละเอียดของข้อความ CSS ที่จะแทรก ต้องตั้งค่าพร็อพเพอร์ตี้โค้ดหรือไฟล์ แต่จะตั้งค่าทั้ง 2 อย่างพร้อมกันไม่ได้
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 88 ขึ้นไปแก้ไขเมื่อแทรก CSS ทั้งหมดแล้ว
ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
move()
chrome.tabs.move(
tabIds: number | number[],
moveProperties: object,
callback?: function,
): Promise<Tab | Tab[]>
ย้ายแท็บอย่างน้อย 1 แท็บไปยังตำแหน่งใหม่ภายในหน้าต่างของแท็บนั้น หรือไปยังหน้าต่างใหม่ โปรดทราบว่าแท็บจะย้ายไปและย้ายจากหน้าต่างปกติ (window.type === "normal") ได้เท่านั้น
พารามิเตอร์
-
tabIds
number | number[]
รหัสแท็บหรือรายการรหัสแท็บที่จะย้าย
-
moveProperties
ออบเจ็กต์
-
ดัชนี
ตัวเลข
ตำแหน่งที่จะย้ายหน้าต่างไป ใช้
-1เพื่อวางแท็บไว้ที่ส่วนท้ายของหน้าต่าง -
windowId
number ไม่บังคับ
ค่าเริ่มต้นจะเป็นหน้าต่างที่แท็บนั้นอยู่
-
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(tabs: Tab | Tab[]) => void
การคืนสินค้า
-
Chrome 88 ขึ้นไป
ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
query()
chrome.tabs.query(
queryInfo: object,
callback?: function,
): Promise<Tab[]>
รับแท็บทั้งหมดที่มีพร็อพเพอร์ตี้ที่ระบุ หรือแท็บทั้งหมดหากไม่ได้ระบุพร็อพเพอร์ตี้
พารามิเตอร์
-
queryInfo
ออบเจ็กต์
-
ใช้งาน
บูลีน ไม่บังคับ
แท็บทำงานอยู่ในหน้าต่างหรือไม่
-
audible
บูลีน ไม่บังคับ
Chrome 45 ขึ้นไปแท็บมีเสียงหรือไม่
-
autoDiscardable
บูลีน ไม่บังคับ
Chrome 54 ขึ้นไปกำหนดว่าเบราว์เซอร์จะทิ้งแท็บโดยอัตโนมัติได้หรือไม่เมื่อทรัพยากรเหลือน้อย
-
currentWindow
บูลีน ไม่บังคับ
แท็บอยู่ในหน้าต่างปัจจุบันหรือไม่
-
ทิ้งแล้ว
บูลีน ไม่บังคับ
Chrome 54 ขึ้นไปมีการทิ้งแท็บหรือไม่ แท็บที่ทิ้งคือแท็บที่มีการยกเลิกการโหลดเนื้อหาออกจากหน่วยความจำ แต่ยังคงปรากฏในแนวแท็บ ระบบจะโหลดเนื้อหาซ้ำในครั้งถัดไปที่เปิดใช้งาน
-
ค้าง
บูลีน ไม่บังคับ
Chrome 132 ขึ้นไปแท็บหยุดทำงานชั่วคราวหรือไม่ แท็บที่ถูกตรึงจะไม่สามารถทำงานได้ รวมถึงเครื่องจัดการเหตุการณ์หรือตัวจับเวลา โดยจะปรากฏในแนวแท็บและโหลดเนื้อหาในหน่วยความจำ และจะยกเลิกการระงับเมื่อเปิดใช้งาน
-
groupId
number ไม่บังคับ
Chrome 88 ขึ้นไปรหัสของกลุ่มที่แท็บอยู่ หรือ
tabGroups.TAB_GROUP_ID_NONEสำหรับแท็บที่ไม่ได้จัดกลุ่ม -
ไฮไลต์ไว้
บูลีน ไม่บังคับ
มีการไฮไลต์แท็บหรือไม่
-
ดัชนี
number ไม่บังคับ
ตำแหน่งของแท็บภายในหน้าต่าง
-
lastFocusedWindow
บูลีน ไม่บังคับ
แท็บอยู่ในหน้าต่างที่โฟกัสล่าสุดหรือไม่
-
ปิดเสียงอยู่
บูลีน ไม่บังคับ
Chrome 45 ขึ้นไปมีการปิดเสียงแท็บหรือไม่
-
ตรึงอยู่
บูลีน ไม่บังคับ
มีการปักหมุดแท็บหรือไม่
-
splitViewId
number ไม่บังคับ
Chrome 140 ขึ้นไปรหัสของมุมมองแบบแยกที่แท็บอยู่ หรือ
tabs.SPLIT_VIEW_ID_NONEสำหรับแท็บที่ไม่ได้อยู่ในมุมมองแบบแยก -
สถานะ
TabStatus ไม่บังคับ
สถานะการโหลดแท็บ
-
title
สตริง ไม่บังคับ
จับคู่ชื่อหน้ากับรูปแบบ ระบบจะไม่สนใจพร็อพเพอร์ตี้นี้หากส่วนขยายไม่มีสิทธิ์
"tabs"หรือสิทธิ์ของโฮสต์สำหรับหน้าเว็บ -
URL
string | string[] ไม่บังคับ
จับคู่แท็บกับรูปแบบ URL อย่างน้อย 1 รูปแบบ ตัวระบุส่วนย่อยไม่ตรงกัน ระบบจะไม่สนใจพร็อพเพอร์ตี้นี้หากส่วนขยายไม่มีสิทธิ์
"tabs"หรือสิทธิ์ของโฮสต์สำหรับหน้าเว็บ -
windowId
number ไม่บังคับ
รหัสของหน้าต่างหลัก หรือ
windows.WINDOW_ID_CURRENTสำหรับหน้าต่างปัจจุบัน -
windowType
WindowType ไม่บังคับ
ประเภทของหน้าต่างที่มีแท็บอยู่
-
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(result: Tab[]) => void
-
ผลลัพธ์
Tab[]
-
การคืนสินค้า
-
Promise<Tab[]>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
reload()
chrome.tabs.reload(
tabId?: number,
reloadProperties?: object,
callback?: function,
): Promise<void>
โหลดแท็บซ้ำ
พารามิเตอร์
-
tabId
number ไม่บังคับ
รหัสของแท็บที่จะโหลดซ้ำ ค่าเริ่มต้นคือแท็บที่เลือกของหน้าต่างปัจจุบัน
-
reloadProperties
object ไม่บังคับ
-
bypassCache
บูลีน ไม่บังคับ
เลือกว่าจะข้ามการแคชในเครื่องหรือไม่ ค่าเริ่มต้นคือ
false
-
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
remove()
chrome.tabs.remove(
tabIds: number | number[],
callback?: function,
): Promise<void>
ปิดแท็บอย่างน้อย 1 แท็บ
พารามิเตอร์
-
tabIds
number | number[]
รหัสแท็บหรือรายการรหัสแท็บที่จะปิด
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
removeCSS()
chrome.tabs.removeCSS(
tabId?: number,
details: DeleteInjectionDetails,
callback?: function,
): Promise<void>
แทนที่ด้วย scripting.removeCSS ใน Manifest V3
นำ CSS ออกจากหน้าที่แทรกไว้ก่อนหน้านี้โดยการเรียกใช้ scripting.insertCSS
พารามิเตอร์
-
tabId
number ไม่บังคับ
รหัสของแท็บที่จะนำ CSS ออก โดยค่าเริ่มต้นจะเป็นแท็บที่ใช้งานอยู่ของหน้าต่างปัจจุบัน
-
รายละเอียด
รายละเอียดของข้อความ CSS ที่จะนำออก ต้องตั้งค่าพร็อพเพอร์ตี้โค้ดหรือไฟล์ แต่จะตั้งค่าทั้ง 2 อย่างพร้อมกันไม่ได้
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 88 ขึ้นไปแก้ไขเมื่อนำ CSS ทั้งหมดออกแล้ว
ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
sendMessage()
chrome.tabs.sendMessage(
tabId: number,
message: any,
options?: object,
callback?: function,
): Promise<any>
ส่งข้อความเดียวไปยังสคริปต์เนื้อหาในแท็บที่ระบุ เหตุการณ์ runtime.onMessage จะเริ่มทำงานในสคริปต์เนื้อหาแต่ละรายการที่ทำงานในแท็บที่ระบุสำหรับส่วนขยายปัจจุบัน
พารามิเตอร์
-
tabId
ตัวเลข
-
ข้อความ
ใดๆ
ข้อความที่จะส่ง ข้อความนี้ควรเป็นออบเจ็กต์ที่แปลงเป็น JSON ได้
-
ตัวเลือก
object ไม่บังคับ
-
callback
function ไม่บังคับ
Chrome 99 ขึ้นไปพารามิเตอร์
callbackจะมีลักษณะดังนี้(response: any) => void
-
การตอบกลับ
ใดๆ
ออบเจ็กต์การตอบกลับ JSON ที่ส่งโดยเครื่องมือจัดการข้อความ
-
การคืนสินค้า
-
Promise<any>
Chrome 99 ขึ้นไปPromise ที่แก้ไขด้วยการตอบกลับจากสคริปต์เนื้อหา หากเกิดข้อผิดพลาดขณะเชื่อมต่อกับแท็บที่ระบุ ระบบจะปฏิเสธ Promise
ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
sendRequest()
chrome.tabs.sendRequest(
tabId: number,
request: any,
callback?: function,
): Promise<any>
โปรดใช้ runtime.sendMessage
ส่งคำขอเดียวไปยังสคริปต์เนื้อหาในแท็บที่ระบุ พร้อมด้วย Callback ที่ไม่บังคับให้เรียกใช้เมื่อมีการส่งการตอบกลับกลับมา เหตุการณ์ extension.onRequest จะเริ่มทำงานในสคริปต์เนื้อหาแต่ละรายการที่ทำงานในแท็บที่ระบุสำหรับส่วนขยายปัจจุบัน
พารามิเตอร์
-
tabId
ตัวเลข
-
ส่งคำขอ
ใดๆ
-
callback
function ไม่บังคับ
Chrome 99 ขึ้นไปพารามิเตอร์
callbackจะมีลักษณะดังนี้(response: any) => void
-
การตอบกลับ
ใดๆ
ออบเจ็กต์การตอบกลับ JSON ที่ส่งโดยตัวแฮนเดิลของคำขอ หากเกิดข้อผิดพลาดขณะเชื่อมต่อกับแท็บที่ระบุ ระบบจะปฏิเสธ Promise
-
การคืนสินค้า
-
Promise<any>
Chrome 99 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
setZoom()
chrome.tabs.setZoom(
tabId?: number,
zoomFactor: number,
callback?: function,
): Promise<void>
ซูมแท็บที่ระบุ
พารามิเตอร์
-
tabId
number ไม่บังคับ
รหัสของแท็บที่จะซูม โดยค่าเริ่มต้นจะเป็นแท็บที่ใช้งานอยู่ของหน้าต่างปัจจุบัน
-
zoomFactor
ตัวเลข
ปัจจัยการซูมใหม่ ค่า
0จะตั้งค่าแท็บเป็นปัจจัยการซูมเริ่มต้นปัจจุบัน ค่าที่มากกว่า0จะระบุปัจจัยการซูม (อาจไม่ใช่ค่าเริ่มต้น) สำหรับแท็บ -
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 88 ขึ้นไปแก้ไขหลังจากเปลี่ยนปัจจัยการซูมแล้ว
ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
setZoomSettings()
chrome.tabs.setZoomSettings(
tabId?: number,
zoomSettings: ZoomSettings,
callback?: function,
): Promise<void>
ตั้งค่าการซูมสำหรับแท็บที่ระบุ ซึ่งกำหนดวิธีจัดการการเปลี่ยนแปลงการซูม การตั้งค่าเหล่านี้จะรีเซ็ตเป็นค่าเริ่มต้นเมื่อไปยังแท็บ
พารามิเตอร์
-
tabId
number ไม่บังคับ
รหัสของแท็บที่จะเปลี่ยนการตั้งค่าการซูม โดยค่าเริ่มต้นจะเป็นแท็บที่ใช้งานอยู่ของหน้าต่างปัจจุบัน
-
zoomSettings
กำหนดวิธีจัดการการเปลี่ยนแปลงการซูมและขอบเขต
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 88 ขึ้นไปปัญหาจะได้รับการแก้ไขหลังจากเปลี่ยนการตั้งค่าการซูม
ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
ungroup()
chrome.tabs.ungroup(
tabIds: number | [number, ...number[]],
callback?: function,
): Promise<void>
นำแท็บอย่างน้อย 1 แท็บออกจากกลุ่มที่เกี่ยวข้อง หากกลุ่มใดว่างเปล่า ระบบจะลบกลุ่มนั้นออก
พารามิเตอร์
-
tabIds
number | [number, ...number[]]
รหัสแท็บหรือรายการรหัสแท็บที่จะนำออกจากกลุ่มที่เกี่ยวข้อง
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
unsplit()
chrome.tabs.unsplit(
splitViewId: number,
callback?: function,
): Promise<void>
แยกแท็บในมุมมองแบบแยกออกเป็นแท็บแยกต่างหาก
พารามิเตอร์
-
splitViewId
ตัวเลข
รหัสของมุมมองแบบแยกที่จะแยก
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
update()
chrome.tabs.update(
tabId?: number,
updateProperties: object,
callback?: function,
): Promise<Tab | undefined>
แก้ไขพร็อพเพอร์ตี้ของแท็บ ระบบจะไม่แก้ไขพร็อพเพอร์ตี้ที่ไม่ได้ระบุไว้ใน updateProperties
พารามิเตอร์
-
tabId
number ไม่บังคับ
ค่าเริ่มต้นจะเป็นแท็บที่เลือกของหน้าต่างปัจจุบัน
-
updateProperties
ออบเจ็กต์
-
ใช้งาน
บูลีน ไม่บังคับ
แท็บควรทำงานอยู่หรือไม่ ไม่ส่งผลต่อการโฟกัสหน้าต่าง (ดู
windows.update) -
autoDiscardable
บูลีน ไม่บังคับ
Chrome 54 ขึ้นไปเบราว์เซอร์ควรทิ้งแท็บโดยอัตโนมัติหรือไม่เมื่อทรัพยากรเหลือน้อย
-
ไฮไลต์ไว้
บูลีน ไม่บังคับ
เพิ่มหรือนำแท็บออกจากรายการที่เลือกในปัจจุบัน
-
ปิดเสียงอยู่
บูลีน ไม่บังคับ
Chrome 45 ขึ้นไปควรปิดเสียงแท็บหรือไม่
-
openerTabId
number ไม่บังคับ
รหัสของแท็บที่เปิดแท็บนี้ หากระบุ แท็บที่เปิดต้องอยู่ในหน้าต่างเดียวกับแท็บนี้
-
ตรึงอยู่
บูลีน ไม่บังคับ
ควรปักหมุดแท็บหรือไม่
-
เลือกแล้ว
บูลีน ไม่บังคับ
เลิกใช้งานแล้วโปรดใช้ไฮไลต์
เลือกว่าควรเลือกแท็บหรือไม่
-
URL
สตริง ไม่บังคับ
URL ที่จะไปยังแท็บ ไม่รองรับ URL ของ JavaScript ให้ใช้
scripting.executeScriptแทน
-
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(tab?: Tab) => void
การคืนสินค้า
-
Promise<Tab | undefined>
Chrome 88 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
กิจกรรม
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,
)
เริ่มทำงานเมื่อมีการย้ายแท็บภายในหน้าต่าง ระบบจะเริ่มเหตุการณ์การย้ายเพียงเหตุการณ์เดียว ซึ่งแสดงถึงแท็บที่ผู้ใช้ย้ายโดยตรง ระบบจะไม่เริ่มเหตุการณ์การย้ายสำหรับแท็บอื่นๆ ที่ต้องย้ายเพื่อตอบสนองต่อแท็บที่ย้ายด้วยตนเอง เหตุการณ์นี้จะไม่เริ่มทำงานเมื่อมีการย้ายแท็บระหว่างหน้าต่าง โปรดดูรายละเอียดที่ 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
number ไม่บังคับ
Chrome 88 ขึ้นไปกลุ่มใหม่ของแท็บ
-
mutedInfo
MutedInfo ไม่บังคับ
Chrome 46 ขึ้นไปสถานะการปิดเสียงใหม่ของแท็บและเหตุผลในการเปลี่ยนแปลง
-
ตรึงอยู่
บูลีน ไม่บังคับ
สถานะการปักหมุดใหม่ของแท็บ
-
splitViewId
number ไม่บังคับ
Chrome 140 ขึ้นไปมุมมองแบบแยกใหม่ของแท็บ
-
สถานะ
TabStatus ไม่บังคับ
สถานะการโหลดของแท็บ
-
title
สตริง ไม่บังคับ
Chrome 48 ขึ้นไปชื่อใหม่ของแท็บ
-
URL
สตริง ไม่บังคับ
URL ของแท็บหากมีการเปลี่ยนแปลง
-
-
แท็บ
-
onZoomChange
chrome.tabs.onZoomChange.addListener(
callback: function,
)
เริ่มทำงานเมื่อมีการซูมแท็บ
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(ZoomChangeInfo: object) => void
-
ZoomChangeInfo
ออบเจ็กต์
-
newZoomFactor
ตัวเลข
-
oldZoomFactor
ตัวเลข
-
tabId
ตัวเลข
-
zoomSettings
-
-