คำอธิบาย
ใช้ chrome.tabs
API เพื่อโต้ตอบกับระบบแท็บของเบราว์เซอร์ คุณสามารถใช้ API นี้เพื่อสร้าง แก้ไข และจัดเรียงแท็บในเบราว์เซอร์ได้
ภาพรวม
Tabs API ไม่เพียงมีฟีเจอร์สำหรับการควบคุมและจัดการแท็บเท่านั้น แต่ยังสามารถตรวจจับภาษาของแท็บ ถ่ายภาพหน้าจอ และสื่อสารด้วยสคริปต์เนื้อหาของแท็บได้อีกด้วย
สิทธิ์
ฟีเจอร์ส่วนใหญ่ไม่จำเป็นต้องใช้สิทธิ์ใดๆ ในการใช้งาน ตัวอย่างเช่น การสร้างแท็บใหม่ การโหลดแท็บซ้ำ การนำทางไปยัง 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"
],
...
}
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
string ไม่บังคับ
รหัสของส่วนขยายที่เปลี่ยนสถานะปิดเสียง ไม่ได้ตั้งค่าหากส่วนขยายไม่ใช่เหตุผลที่สถานะปิดเสียงมีการเปลี่ยนแปลงครั้งล่าสุด
-
ปิดเสียงอยู่
boolean
ระบุว่าแท็บปิดเสียงอยู่หรือไม่ (มีการป้องกันไม่ให้เล่นเสียง) แท็บอาจถูกปิดเสียงแม้ว่าจะไม่ได้เล่นหรือไม่ได้เล่นเสียงอยู่ในขณะนี้ เทียบเท่ากับการที่สัญญาณบอกสถานะเสียง "ปิดเสียง" แสดงอยู่
-
สาเหตุ
MutedInfoReason ไม่บังคับ
เหตุผลที่ปิดเสียงหรือเปิดเสียงแท็บ ไม่ได้ตั้งค่าหากสถานะปิดเสียงของแท็บไม่เคยเปลี่ยนแปลง
MutedInfoReason
เหตุการณ์ที่ทำให้เกิดการเปลี่ยนแปลงสถานะปิดเสียง
ค่าแจกแจง
"user"
การดำเนินการป้อนข้อมูลของผู้ใช้ตั้งสถานะปิดเสียง
"capture"
เริ่มการบันทึกแท็บแล้ว โดยบังคับให้เปลี่ยนสถานะที่ปิดเสียง
"extension"
ส่วนขยายที่ระบุโดยช่องExtensionId จะตั้งสถานะปิดเสียง
Tab
พร็อพเพอร์ตี้
-
ใช้งาน
boolean
แท็บใช้งานในหน้าต่างอยู่หรือไม่ ไม่ได้หมายความว่าหน้าต่างถูกโฟกัสอยู่เสมอไป
-
audible
บูลีน ไม่บังคับ
Chrome 45 ขึ้นไปแท็บมีเสียงในช่วง 2-3 วินาทีที่ผ่านมาหรือไม่ (แต่อาจไม่ได้ยินเสียงหากปิดเสียงด้วย) เทียบเท่ากับสถานะ "เสียงของลำโพง" ปรากฏขึ้นหรือไม่
-
autoDiscardable
boolean
Chrome 54 ขึ้นไปเบราว์เซอร์สามารถทิ้งแท็บโดยอัตโนมัติได้หรือไม่เมื่อทรัพยากรเหลือน้อย
-
ทิ้งแล้ว
boolean
Chrome 54 ขึ้นไประบุว่ามีการทิ้งแท็บหรือไม่ แท็บที่ยกเลิกคือแท็บที่มีการยกเลิกการโหลดเนื้อหาจากหน่วยความจำ แต่ยังคงเห็นได้ในแนวแท็บ ระบบจะโหลดเนื้อหาซ้ำเมื่อเปิดใช้งานครั้งถัดไป
-
favIconUrl
string ไม่บังคับ
URL ของไอคอน Fav ของแท็บ พร็อพเพอร์ตี้นี้จะปรากฏก็ต่อเมื่อไฟล์ Manifest ของส่วนขยายมีสิทธิ์
"tabs"
เท่านั้น และอาจเป็นสตริงว่างเปล่าหากแท็บกำลังโหลด -
groupId
ตัวเลข
Chrome เวอร์ชัน 88 ขึ้นไปรหัสของกลุ่มที่มีแท็บนั้นอยู่
-
ส่วนสูง
ตัวเลข ไม่บังคับ
ความสูงของแท็บในหน่วยพิกเซล
-
ไฮไลต์ไว้
boolean
แท็บมีการไฮไลต์หรือไม่
-
id
ตัวเลข ไม่บังคับ
รหัสของแท็บ รหัสแท็บจะไม่ซ้ำกันในเซสชันของเบราว์เซอร์ ในบางสถานการณ์ ระบบอาจกำหนดรหัสแท็บไม่ได้ เช่น เมื่อค้นหาแท็บภาษาต่างประเทศโดยใช้ API ของ
sessions
ซึ่งในกรณีนี้อาจมีรหัสเซสชันอยู่ คุณยังตั้งค่ารหัสแท็บเป็นchrome.tabs.TAB_ID_NONE
สำหรับหน้าต่างแอปและเครื่องมือสำหรับนักพัฒนาเว็บได้ด้วย -
ไม่ระบุตัวตน
boolean
แท็บอยู่ในหน้าต่างที่ไม่ระบุตัวตนหรือไม่
-
ดัชนี
ตัวเลข
ดัชนีฐาน 0 ของแท็บภายในหน้าต่าง
-
lastAccessed
ตัวเลข ไม่บังคับ
Chrome 121 ขึ้นไปเวลาล่าสุดที่มีการเข้าถึงแท็บเป็นจำนวนมิลลิวินาทีนับตั้งแต่ Epoch
-
mutedInfo
MutedInfo ไม่บังคับ
Chrome 46 ขึ้นไปสถานะปิดเสียงของแท็บและเหตุผลที่สถานะล่าสุดมีการเปลี่ยนแปลง
-
openerTabId
ตัวเลข ไม่บังคับ
รหัสของแท็บที่เปิดแท็บนี้ (หากมี) พร็อพเพอร์ตี้นี้จะปรากฏก็ต่อเมื่อแท็บที่เปิดไว้ยังคงอยู่
-
pendingUrl
string ไม่บังคับ
Chrome เวอร์ชัน 79 ขึ้นไปURL ที่แท็บไปถึงก่อนที่จะคอมมิต พร็อพเพอร์ตี้นี้จะปรากฏก็ต่อเมื่อไฟล์ Manifest ของส่วนขยายมีสิทธิ์
"tabs"
และมีการนำทางที่รอดำเนินการ -
ปักหมุดแล้ว
boolean
มีการปักหมุดแท็บไหม
-
เลือกแล้ว
boolean
เลิกใช้งานแล้วโปรดใช้
tabs.Tab.highlighted
แท็บมีการเลือกหรือไม่
-
sessionId
string ไม่บังคับ
รหัสเซสชันที่ใช้เพื่อระบุแท็บที่ได้รับจาก
sessions
API โดยไม่ซ้ำกัน -
status
TabStatus ไม่บังคับ
สถานะการโหลดของแท็บ
-
title
string ไม่บังคับ
ชื่อของแท็บ พร็อพเพอร์ตี้นี้จะปรากฏก็ต่อเมื่อไฟล์ Manifest ของส่วนขยายมีสิทธิ์
"tabs"
เท่านั้น -
url
string ไม่บังคับ
URL ล่าสุดที่คอมมิตของเฟรมหลักของแท็บ พร็อพเพอร์ตี้นี้จะปรากฏก็ต่อเมื่อไฟล์ Manifest ของส่วนขยายมีสิทธิ์
"tabs"
และอาจเป็นสตริงว่างเปล่าหากยังไม่มีการคอมมิตแท็บ ดูTab.pendingUrl
เพิ่มเติม -
ความกว้าง
ตัวเลข ไม่บังคับ
ความกว้างของแท็บในหน่วยพิกเซล
-
windowId
ตัวเลข
รหัสของหน้าต่างที่มีแท็บ
TabStatus
สถานะการโหลดของแท็บ
ค่าแจกแจง
WindowType
ประเภทของหน้าต่าง
ค่าแจกแจง
ZoomSettings
กำหนดวิธีการจัดการการเปลี่ยนแปลงการซูมในแท็บและขอบเขตระดับใด
พร็อพเพอร์ตี้
-
defaultZoomFactor
ตัวเลข ไม่บังคับ
Chrome 43 ขึ้นไปใช้เพื่อเปลี่ยนระดับการซูมเริ่มต้นสำหรับแท็บปัจจุบันในการเรียกใช้ไปยังแท็บ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-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 โดยจะบันทึกเว็บไซต์ที่ละเอียดอ่อนเหล่านี้ได้ต่อด้วยสิทธิ์ของ ActiveTab เท่านั้น คุณจะบันทึก URL ของไฟล์ได้ก็ต่อเมื่อส่วนขยายให้สิทธิ์เข้าถึงไฟล์แล้วเท่านั้น
พารามิเตอร์
-
windowId
ตัวเลข ไม่บังคับ
หน้าต่างเป้าหมาย ค่าเริ่มต้นคือหน้าต่างปัจจุบัน
-
ตัวเลือก
ImageDetails ไม่บังคับ
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(dataUrl: string) => void
-
dataUrl
string
URL ข้อมูลที่เข้ารหัสรูปภาพของส่วนที่มองเห็นได้ของแท็บที่จับภาพ อาจกําหนดให้กับพร็อพเพอร์ตี้ "src" ขององค์ประกอบ
img
ของ HTML เพื่อการแสดงผล
-
การคืนสินค้า
-
คำสัญญา<string>
Chrome เวอร์ชัน 88 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
connect()
chrome.tabs.connect(
tabId: number,
connectInfo?: object,
)
เชื่อมต่อกับสคริปต์เนื้อหาในแท็บที่ระบุ เหตุการณ์ runtime.onConnect
จะเริ่มทำงานในสคริปต์เนื้อหาแต่ละสคริปต์ที่ทำงานในแท็บที่ระบุสำหรับส่วนขยายปัจจุบัน โปรดดูรายละเอียดเพิ่มเติมที่การส่งข้อความสคริปต์เนื้อหา
พารามิเตอร์
-
tabId
ตัวเลข
-
connectInfo
ออบเจ็กต์ ไม่บังคับ
-
documentId
string ไม่บังคับ
Chrome 106 ขึ้นไปเปิดพอร์ตไปยังเอกสารเฉพาะที่ระบุโดย
documentId
แทนเฟรมทั้งหมดในแท็บ -
frameId
ตัวเลข ไม่บังคับ
เปิดพอร์ตไปยังเฟรมที่เฉพาะเจาะจงที่ระบุโดย
frameId
แทนเฟรมทั้งหมดในแท็บ -
ชื่อ
string ไม่บังคับ
ระบบจะส่งต่อไปยัง onConnect สำหรับสคริปต์เนื้อหาที่รอฟังเหตุการณ์การเชื่อมต่อ
-
การคืนสินค้า
-
พอร์ตที่ใช้เพื่อสื่อสารกับสคริปต์เนื้อหาที่ทำงานในแท็บที่ระบุ เหตุการณ์
runtime.Port
ของพอร์ตจะเริ่มทำงานหากแท็บปิดอยู่หรือไม่มีอยู่
create()
chrome.tabs.create(
createProperties: object,
callback?: function,
)
สร้างแท็บใหม่
พารามิเตอร์
-
createProperties
ออบเจ็กต์
-
ใช้งาน
บูลีน ไม่บังคับ
แท็บควรเป็นแท็บที่ใช้งานอยู่ในหน้าต่างหรือไม่ ไม่ส่งผลกระทบต่อการโฟกัสหน้าต่าง (ดู
windows.update
) ค่าเริ่มต้นคือtrue
-
ดัชนี
ตัวเลข ไม่บังคับ
ตําแหน่งที่แท็บควรจะปรากฏในหน้าต่าง ค่าที่ระบุจะถูกบีบให้เหลือระหว่าง 0 ถึงจำนวนแท็บในหน้าต่าง
-
openerTabId
ตัวเลข ไม่บังคับ
รหัสของแท็บที่เปิดแท็บนี้ หากระบุไว้ แท็บที่เปิดอยู่ต้องอยู่ในหน้าต่างเดียวกับแท็บที่สร้างใหม่
-
ปักหมุดแล้ว
บูลีน ไม่บังคับ
ควรปักหมุดแท็บไหม ค่าเริ่มต้นคือ
false
-
เลือกแล้ว
บูลีน ไม่บังคับ
เลิกใช้งานแล้วโปรดใช้ active
แท็บควรเป็นแท็บที่เลือกในหน้าต่างหรือไม่ ค่าเริ่มต้นคือ
true
-
url
string ไม่บังคับ
URL ที่จะไปยังแท็บในตอนแรก URL ที่มีคุณสมบัติครบถ้วนต้องมีรูปแบบ (เช่น "http://www.google.com" ไม่ใช่ "www.google.com") URL สัมพัทธ์จะสัมพัทธ์กับหน้าปัจจุบันภายในส่วนขยาย ค่าเริ่มต้นจะเป็นหน้าแท็บใหม่
-
windowId
ตัวเลข ไม่บังคับ
หน้าต่างที่ใช้สร้างแท็บใหม่ ค่าเริ่มต้นคือหน้าต่างปัจจุบัน
-
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(tab: Tab) => void
-
Tab
แท็บที่สร้าง
-
การคืนสินค้า
-
Promise<Tab>
Chrome เวอร์ชัน 88 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
detectLanguage()
chrome.tabs.detectLanguage(
tabId?: number,
callback?: function,
)
ตรวจหาภาษาหลักของเนื้อหาในแท็บ
พารามิเตอร์
-
tabId
ตัวเลข ไม่บังคับ
ค่าเริ่มต้นจะเป็นแท็บที่ใช้งานอยู่ของหน้าต่างปัจจุบัน
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(language: string) => void
-
ภาษา
string
รหัสภาษา ISO เช่น
en
หรือfr
ดูรายการภาษาทั้งหมดที่วิธีนี้รองรับได้ที่ kLanguageInfoTable คอลัมน์ที่ 2 ถึง 4 จะถูกเลือกไว้ และจะแสดงค่าแรกที่ไม่ใช่ NULL ยกเว้นภาษาจีนตัวย่อที่จะแสดงผลzh-CN
สำหรับภาษาที่ไม่รู้จัก/ไม่ระบุ ระบบจะแสดงผลund
-
การคืนสินค้า
-
คำสัญญา<string>
Chrome เวอร์ชัน 88 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
discard()
chrome.tabs.discard(
tabId?: number,
callback?: function,
)
ทิ้งแท็บจากความทรงจำ แท็บที่ยกเลิกจะยังคงปรากฏในแนวแท็บและจะโหลดซ้ำเมื่อเปิดใช้งาน
พารามิเตอร์
-
tabId
ตัวเลข ไม่บังคับ
รหัสของแท็บที่จะทิ้ง หากระบุไว้ ระบบจะยกเลิกแท็บดังกล่าว เว้นแต่จะมีการใช้งานหรือทิ้งไปแล้ว หากไม่ระบุ เบราว์เซอร์จะทิ้งแท็บที่มีความสำคัญน้อยที่สุด ซึ่งการดำเนินการนี้อาจล้มเหลวหากไม่มีแท็บที่ทิ้งได้
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(tab?: Tab) => void
-
Tab
Tab ไม่บังคับ
แท็บที่ถูกยกเลิก หากทิ้งเรียบร้อยแล้ว ไม่ระบุ
-
การคืนสินค้า
-
Promise<Tab | undefined>
Chrome เวอร์ชัน 88 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
duplicate()
chrome.tabs.duplicate(
tabId: number,
callback?: function,
)
ทำซ้ำแท็บ
พารามิเตอร์
-
tabId
ตัวเลข
รหัสของแท็บที่จะทำซ้ำ
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(tab?: Tab) => void
การคืนสินค้า
-
Promise<Tab | undefined>
Chrome เวอร์ชัน 88 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
executeScript()
chrome.tabs.executeScript(
tabId?: number,
details: InjectDetails,
callback?: function,
)
แทนที่โดย scripting.executeScript
ในไฟล์ Manifest V3
แทรกโค้ด JavaScript ลงในหน้าเว็บ โปรดดูรายละเอียดที่ส่วนการแทรกแบบเป็นโปรแกรมในเอกสารสคริปต์เนื้อหา
พารามิเตอร์
-
tabId
ตัวเลข ไม่บังคับ
รหัสของแท็บที่จะเรียกใช้สคริปต์ โดยมีค่าเริ่มต้นเป็นแท็บที่ใช้งานอยู่ของหน้าต่างปัจจุบัน
-
รายละเอียด
รายละเอียดของสคริปต์ที่จะเรียกใช้ ต้องตั้งค่าโค้ดหรือคุณสมบัติของไฟล์ แต่ตั้งค่าทั้ง 2 อย่างพร้อมกันไม่ได้
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(result?: any[]) => void
-
ผลลัพธ์
ทั้งหมด[] ไม่บังคับ
ผลลัพธ์ของสคริปต์ในทุกเฟรมที่แทรก
-
การคืนสินค้า
-
คำสัญญา<any[] | undefined>
Chrome เวอร์ชัน 88 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
get()
chrome.tabs.get(
tabId: number,
callback?: function,
)
เรียกข้อมูลรายละเอียดเกี่ยวกับแท็บที่ระบุ
พารามิเตอร์
-
tabId
ตัวเลข
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(tab: Tab) => void
-
Tab
-
การคืนสินค้า
-
Promise<Tab>
Chrome เวอร์ชัน 88 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
getAllInWindow()
chrome.tabs.getAllInWindow(
windowId?: number,
callback?: function,
)
โปรดใช้ tabs.query
{windowId: windowId}
ดูรายละเอียดเกี่ยวกับแท็บทั้งหมดในหน้าต่างที่ระบุ
พารามิเตอร์
-
windowId
ตัวเลข ไม่บังคับ
ค่าเริ่มต้นคือหน้าต่างปัจจุบัน
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(tabs: Tab[]) => void
-
แท็บ
แท็บ[]
-
การคืนสินค้า
-
Promise<Tab[]>
Chrome เวอร์ชัน 88 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
getCurrent()
chrome.tabs.getCurrent(
callback?: function,
)
รับแท็บที่ใช้เรียกใช้สคริปต์นี้ แสดงผล undefined
หากเรียกใช้จากบริบทที่ไม่ใช่แท็บ (เช่น หน้าพื้นหลังหรือมุมมองป๊อปอัป)
พารามิเตอร์
การคืนสินค้า
-
Promise<Tab | undefined>
Chrome เวอร์ชัน 88 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
getSelected()
chrome.tabs.getSelected(
windowId?: number,
callback?: function,
)
โปรดใช้ tabs.query
{active: true}
ดูแท็บที่เลือกไว้ในหน้าต่างที่ระบุ
พารามิเตอร์
-
windowId
ตัวเลข ไม่บังคับ
ค่าเริ่มต้นคือหน้าต่างปัจจุบัน
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(tab: Tab) => void
-
Tab
-
การคืนสินค้า
-
Promise<Tab>
Chrome เวอร์ชัน 88 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
getZoom()
chrome.tabs.getZoom(
tabId?: number,
callback?: function,
)
ดึงค่าการซูมปัจจุบันของแท็บที่ระบุ
พารามิเตอร์
-
tabId
ตัวเลข ไม่บังคับ
รหัสของแท็บที่ใช้รับปัจจัยการซูมปัจจุบัน ซึ่งมีค่าเริ่มต้นเป็นแท็บที่ใช้งานอยู่ของหน้าต่างปัจจุบัน
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(zoomFactor: number) => void
-
zoomFactor
ตัวเลข
ปัจจัยการซูมปัจจุบันของแท็บ
-
การคืนสินค้า
-
คำมั่นสัญญา<number>
Chrome เวอร์ชัน 88 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
getZoomSettings()
chrome.tabs.getZoomSettings(
tabId?: number,
callback?: function,
)
รับการตั้งค่าการซูมปัจจุบันของแท็บที่ระบุ
พารามิเตอร์
-
tabId
ตัวเลข ไม่บังคับ
รหัสของแท็บที่ใช้รับการตั้งค่าการซูมปัจจุบัน โดยมีค่าเริ่มต้นเป็นแท็บที่ใช้งานอยู่ของหน้าต่างปัจจุบัน
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(zoomSettings: ZoomSettings) => void
-
zoomSettings
การตั้งค่าการซูมปัจจุบันของแท็บ
-
การคืนสินค้า
-
Promise<ZoomSettings>
Chrome เวอร์ชัน 88 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
goBack()
chrome.tabs.goBack(
tabId?: number,
callback?: function,
)
กลับไปยังหน้าก่อนหน้า หากมี
พารามิเตอร์
-
tabId
ตัวเลข ไม่บังคับ
รหัสของแท็บเพื่อย้อนกลับ ซึ่งมีค่าเริ่มต้นเป็นแท็บที่เลือกของหน้าต่างปัจจุบัน
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome เวอร์ชัน 88 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
goForward()
chrome.tabs.goForward(
tabId?: number,
callback?: function,
)
ไปยังหน้าถัดไป หากมี
พารามิเตอร์
-
tabId
ตัวเลข ไม่บังคับ
รหัสของแท็บเพื่อไปข้างหน้า ค่าเริ่มต้นคือแท็บที่เลือกของหน้าต่างปัจจุบัน
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome เวอร์ชัน 88 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
group()
chrome.tabs.group(
options: object,
callback?: function,
)
เพิ่มแท็บอย่างน้อย 1 แท็บลงในกลุ่มที่ระบุ หรือหากไม่ได้ระบุกลุ่มไว้ ให้เพิ่มแท็บที่ต้องการลงในกลุ่มที่สร้างใหม่
พารามิเตอร์
-
ตัวเลือก
ออบเจ็กต์
-
createProperties
ออบเจ็กต์ ไม่บังคับ
การกำหนดค่าสำหรับการสร้างกลุ่ม ใช้ไม่ได้หากระบุ groupId แล้ว
-
windowId
ตัวเลข ไม่บังคับ
หน้าต่างของกลุ่มใหม่ ค่าเริ่มต้นคือหน้าต่างปัจจุบัน
-
-
groupId
ตัวเลข ไม่บังคับ
รหัสของกลุ่มที่จะเพิ่มแท็บ หากไม่ได้ระบุไว้ ระบบจะสร้างกลุ่มใหม่
-
tabIds
ตัวเลข | [ตัวเลข, ...ตัวเลข[]]
รหัสแท็บหรือรายการรหัสแท็บที่จะเพิ่มลงในกลุ่มที่ระบุ
-
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(groupId: number) => void
-
groupId
ตัวเลข
รหัสของกลุ่มที่เพิ่มแท็บเข้าไป
-
การคืนสินค้า
-
คำมั่นสัญญา<number>
Promiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
highlight()
chrome.tabs.highlight(
highlightInfo: object,
callback?: function,
)
ไฮไลต์แท็บที่ระบุและโฟกัสที่แท็บแรกของกลุ่ม ดูเหมือนจะไม่ทำอะไรหากแท็บที่ระบุทำงานอยู่
พารามิเตอร์
-
highlightInfo
ออบเจ็กต์
-
แท็บ
ตัวเลข | ตัวเลข[]
ดัชนีแท็บที่จะไฮไลต์อย่างน้อย 1 รายการ
-
windowId
ตัวเลข ไม่บังคับ
หน้าต่างที่มีแท็บต่างๆ
-
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(window: Window) => void
-
หน้าต่าง
มีรายละเอียดเกี่ยวกับหน้าต่างที่ไฮไลต์แท็บ
-
การคืนสินค้า
-
สัญญาว่า<windows.Window>
Chrome เวอร์ชัน 88 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
insertCSS()
chrome.tabs.insertCSS(
tabId?: number,
details: InjectDetails,
callback?: function,
)
แทนที่โดย scripting.insertCSS
ในไฟล์ Manifest V3
แทรก CSS ลงในหน้าเว็บ คุณจะนำรูปแบบที่แทรกด้วยวิธีนี้ออกได้ด้วย scripting.removeCSS
โปรดดูรายละเอียดที่ส่วนการแทรกแบบเป็นโปรแกรมในเอกสารสคริปต์เนื้อหา
พารามิเตอร์
-
tabId
ตัวเลข ไม่บังคับ
รหัสของแท็บที่จะแทรก CSS โดยมีค่าเริ่มต้นเป็นแท็บที่ใช้งานอยู่ของหน้าต่างปัจจุบัน
-
รายละเอียด
รายละเอียดของข้อความ CSS ที่จะแทรก ต้องตั้งค่าโค้ดหรือคุณสมบัติของไฟล์ แต่ตั้งค่าทั้ง 2 อย่างพร้อมกันไม่ได้
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome เวอร์ชัน 88 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
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 ขึ้นไป
Promiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
query()
chrome.tabs.query(
queryInfo: object,
callback?: function,
)
รับแท็บทั้งหมดที่มีคุณสมบัติตามที่ระบุไว้ หรือแท็บทั้งหมดหากไม่ได้ระบุคุณสมบัติไว้
พารามิเตอร์
-
queryInfo
ออบเจ็กต์
-
ใช้งาน
บูลีน ไม่บังคับ
แท็บต่างๆ มีการใช้งานในหน้าต่างหรือไม่
-
audible
บูลีน ไม่บังคับ
Chrome 45 ขึ้นไปแท็บได้ยินเสียงหรือไม่
-
autoDiscardable
บูลีน ไม่บังคับ
Chrome 54 ขึ้นไปเบราว์เซอร์สามารถทิ้งแท็บโดยอัตโนมัติได้หรือไม่เมื่อทรัพยากรเหลือน้อย
-
currentWindow
บูลีน ไม่บังคับ
แท็บอยู่ในหน้าต่างปัจจุบันหรือไม่
-
ทิ้งแล้ว
บูลีน ไม่บังคับ
Chrome 54 ขึ้นไปมีการทิ้งแท็บหรือไม่ แท็บที่ยกเลิกคือแท็บที่มีการยกเลิกการโหลดเนื้อหาจากหน่วยความจำ แต่ยังคงเห็นได้ในแนวแท็บ ระบบจะโหลดเนื้อหาซ้ำเมื่อเปิดใช้งานครั้งถัดไป
-
groupId
ตัวเลข ไม่บังคับ
Chrome เวอร์ชัน 88 ขึ้นไปรหัสของกลุ่มที่มีแท็บอยู่ หรือ
tabGroups.TAB_GROUP_ID_NONE
ของแท็บที่ไม่ได้จัดกลุ่ม -
ไฮไลต์ไว้
บูลีน ไม่บังคับ
มีการไฮไลต์แท็บหรือไม่
-
ดัชนี
ตัวเลข ไม่บังคับ
ตำแหน่งของแท็บภายในหน้าต่าง
-
lastFocusedWindow
บูลีน ไม่บังคับ
แท็บอยู่ในหน้าต่างที่โฟกัสล่าสุดหรือไม่
-
ปิดเสียงอยู่
บูลีน ไม่บังคับ
Chrome 45 ขึ้นไปปิดเสียงแท็บไหม
-
ปักหมุดแล้ว
บูลีน ไม่บังคับ
มีการปักหมุดแท็บไหม
-
status
TabStatus ไม่บังคับ
สถานะการโหลดแท็บ
-
title
string ไม่บังคับ
จับคู่ชื่อหน้ากับรูปแบบ ระบบจะไม่สนใจพร็อพเพอร์ตี้นี้หากส่วนขยายไม่มีสิทธิ์
"tabs"
-
url
string | string[] ไม่บังคับ
จับคู่แท็บกับรูปแบบ URL อย่างน้อย 1 รูปแบบ ตัวระบุส่วนย่อยไม่ตรงกัน ระบบจะไม่สนใจพร็อพเพอร์ตี้นี้หากส่วนขยายไม่มีสิทธิ์
"tabs"
-
windowId
ตัวเลข ไม่บังคับ
รหัสของหน้าต่างระดับบนสุด หรือ
windows.WINDOW_ID_CURRENT
สำหรับหน้าต่างปัจจุบัน -
windowType
WindowType ไม่บังคับ
ประเภทหน้าต่างที่มีแท็บอยู่
-
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(result: Tab[]) => void
-
ผลลัพธ์
แท็บ[]
-
การคืนสินค้า
-
Promise<Tab[]>
Chrome เวอร์ชัน 88 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
reload()
chrome.tabs.reload(
tabId?: number,
reloadProperties?: object,
callback?: function,
)
โหลดแท็บซ้ำ
พารามิเตอร์
-
tabId
ตัวเลข ไม่บังคับ
รหัสของแท็บที่จะโหลดใหม่ โดยค่าเริ่มต้นจะเป็นแท็บที่เลือกของหน้าต่างปัจจุบัน
-
reloadProperties
ออบเจ็กต์ ไม่บังคับ
-
bypassCache
บูลีน ไม่บังคับ
ต้องการข้ามการแคชในเครื่องหรือไม่ ค่าเริ่มต้นคือ
false
-
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome เวอร์ชัน 88 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
remove()
chrome.tabs.remove(
tabIds: number | number[],
callback?: function,
)
ปิดแท็บอย่างน้อย 1 แท็บ
พารามิเตอร์
-
tabIds
ตัวเลข | ตัวเลข[]
รหัสแท็บหรือรายการรหัสแท็บที่จะปิด
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome เวอร์ชัน 88 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
removeCSS()
chrome.tabs.removeCSS(
tabId?: number,
details: DeleteInjectionDetails,
callback?: function,
)
แทนที่โดย scripting.removeCSS
ในไฟล์ Manifest V3
นำออกจาก CSS ของหน้าเว็บที่ก่อนหน้านี้มีการแทรกโดยการเรียกไปยัง scripting.insertCSS
พารามิเตอร์
-
tabId
ตัวเลข ไม่บังคับ
รหัสของแท็บที่จะนํา CSS ออก มีค่าเริ่มต้นเป็นแท็บที่ใช้งานอยู่ของหน้าต่างปัจจุบัน
-
รายละเอียด
รายละเอียดของข้อความ CSS ที่จะนำออก ต้องตั้งค่าโค้ดหรือคุณสมบัติของไฟล์ แต่ตั้งค่าทั้ง 2 อย่างพร้อมกันไม่ได้
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome เวอร์ชัน 88 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
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
เป็นข้อความแสดงข้อผิดพลาดนั้น
-
การคืนสินค้า
-
คำสัญญา<any>
Chrome 99 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
sendRequest()
chrome.tabs.sendRequest(
tabId: number,
request: any,
callback?: function,
)
โปรดใช้ runtime.sendMessage
ส่งคำขอเดียวไปยังสคริปต์เนื้อหาในแท็บที่ระบุ โดยมีการเรียกกลับ(ไม่บังคับ) ให้เรียกใช้เมื่อมีการส่งการตอบกลับ เหตุการณ์ extension.onRequest
จะเริ่มทำงานในสคริปต์เนื้อหาแต่ละสคริปต์ที่ทำงานในแท็บที่ระบุสำหรับส่วนขยายปัจจุบัน
พารามิเตอร์
-
tabId
ตัวเลข
-
ส่งคำขอ
อะไรก็ได้
-
Callback
ฟังก์ชัน ไม่บังคับ
Chrome 99 ขึ้นไปพารามิเตอร์
callback
มีลักษณะดังนี้(response: any) => void
-
การตอบกลับ
อะไรก็ได้
ออบเจ็กต์การตอบกลับ JSON ที่ส่งโดยเครื่องจัดการของคำขอ หากเกิดข้อผิดพลาดขณะเชื่อมต่อกับแท็บที่ระบุ ระบบจะเรียกใช้โค้ดเรียกกลับโดยไม่มีอาร์กิวเมนต์และจะตั้งค่า
runtime.lastError
เป็นข้อความแสดงข้อผิดพลาดนั้น
-
การคืนสินค้า
-
คำสัญญา<any>
Chrome 99 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
setZoom()
chrome.tabs.setZoom(
tabId?: number,
zoomFactor: number,
callback?: function,
)
ซูมแท็บที่ระบุ
พารามิเตอร์
-
tabId
ตัวเลข ไม่บังคับ
รหัสของแท็บที่จะซูม ค่าเริ่มต้นคือแท็บที่ใช้งานอยู่ของหน้าต่างปัจจุบัน
-
zoomFactor
ตัวเลข
ปัจจัยการซูมใหม่ ค่า
0
จะตั้งค่าแท็บเป็นค่าการซูมเริ่มต้นปัจจุบัน ค่าที่มากกว่า0
จะเป็นตัวระบุการซูม (ซึ่งอาจไม่ใช่ค่าเริ่มต้น) สำหรับแท็บ -
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome เวอร์ชัน 88 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
setZoomSettings()
chrome.tabs.setZoomSettings(
tabId?: number,
zoomSettings: ZoomSettings,
callback?: function,
)
ตั้งค่าการซูมสำหรับแท็บที่ระบุ ซึ่งจะกำหนดวิธีจัดการการเปลี่ยนแปลงการซูม การตั้งค่าเหล่านี้จะถูกรีเซ็ตเป็นค่าเริ่มต้นเมื่อไปยังส่วนต่างๆ ของแท็บ
พารามิเตอร์
-
tabId
ตัวเลข ไม่บังคับ
รหัสของแท็บที่จะเปลี่ยนการตั้งค่าการซูม โดยค่าเริ่มต้นจะเป็นแท็บที่ใช้งานอยู่ของหน้าต่างปัจจุบัน
-
zoomSettings
กำหนดวิธีจัดการการเปลี่ยนแปลงการซูมและขอบเขต
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome เวอร์ชัน 88 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
ungroup()
chrome.tabs.ungroup(
tabIds: number | [number, ...number[]],
callback?: function,
)
นำแท็บอย่างน้อย 1 แท็บออกจากกลุ่มที่เกี่ยวข้อง หากกลุ่มใดว่างเปล่า กลุ่มนั้นจะถูกลบ
พารามิเตอร์
-
tabIds
ตัวเลข | [ตัวเลข, ...ตัวเลข[]]
รหัสแท็บหรือรายการรหัสแท็บที่จะนำออกจากกลุ่มที่เกี่ยวข้อง
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Promiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
update()
chrome.tabs.update(
tabId?: number,
updateProperties: object,
callback?: function,
)
แก้ไขคุณสมบัติของแท็บ ระบบจะไม่แก้ไขที่พักที่ไม่ได้ระบุไว้ใน updateProperties
พารามิเตอร์
-
tabId
ตัวเลข ไม่บังคับ
ค่าเริ่มต้นจะเป็นแท็บที่เลือกไว้ของหน้าต่างปัจจุบัน
-
updateProperties
ออบเจ็กต์
-
ใช้งาน
บูลีน ไม่บังคับ
แท็บควรทำงานอยู่หรือไม่ ไม่ส่งผลกระทบต่อการโฟกัสหน้าต่าง (ดู
windows.update
) -
autoDiscardable
บูลีน ไม่บังคับ
Chrome 54 ขึ้นไปเบราว์เซอร์ควรทิ้งแท็บโดยอัตโนมัติเมื่อทรัพยากรเหลือน้อยหรือไม่
-
ไฮไลต์ไว้
บูลีน ไม่บังคับ
เพิ่มหรือนำแท็บออกจากการเลือกปัจจุบัน
-
ปิดเสียงอยู่
บูลีน ไม่บังคับ
Chrome 45 ขึ้นไปควรปิดเสียงแท็บไหม
-
openerTabId
ตัวเลข ไม่บังคับ
รหัสของแท็บที่เปิดแท็บนี้ หากระบุไว้ แท็บที่เปิดอยู่ต้องอยู่ในหน้าต่างเดียวกับแท็บนี้
-
ปักหมุดแล้ว
บูลีน ไม่บังคับ
ควรปักหมุดแท็บไหม
-
เลือกแล้ว
บูลีน ไม่บังคับ
เลิกใช้งานแล้วโปรดใช้ที่ไฮไลต์
ควรเลือกแท็บไหม
-
url
string ไม่บังคับ
URL ที่จะไปยังส่วนต่างๆ ของแท็บ ระบบไม่รองรับ URL ของ JavaScript โปรดใช้
scripting.executeScript
แทน
-
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(tab?: Tab) => void
การคืนสินค้า
-
Promise<Tab | undefined>
Chrome เวอร์ชัน 88 ขึ้นไปPromiss รองรับเฉพาะไฟล์ 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
ตัวเลข[]
แท็บที่ไฮไลต์ทั้งหมดในหน้าต่าง
-
windowId
ตัวเลข
หน้าต่างที่มีการเปลี่ยนแปลงแท็บ
-
-
onHighlighted
chrome.tabs.onHighlighted.addListener(
callback: function,
)
เริ่มทำงานเมื่อแท็บที่ไฮไลต์หรือแท็บที่เลือกในหน้าต่างมีการเปลี่ยนแปลง
พารามิเตอร์
-
Callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(highlightInfo: object) => void
-
highlightInfo
ออบเจ็กต์
-
tabIds
ตัวเลข[]
แท็บที่ไฮไลต์ทั้งหมดในหน้าต่าง
-
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
boolean
เป็นจริงเมื่อปิดแท็บเนื่องจากมีการปิดหน้าต่างระดับบนสุด
-
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
string ไม่บังคับ
URL ไอคอน Fav ใหม่ของแท็บ
-
groupId
ตัวเลข ไม่บังคับ
Chrome เวอร์ชัน 88 ขึ้นไปกลุ่มใหม่ของแท็บ
-
mutedInfo
MutedInfo ไม่บังคับ
Chrome 46 ขึ้นไปสถานะปิดเสียงใหม่ของแท็บและสาเหตุของการเปลี่ยนแปลง
-
ปักหมุดแล้ว
บูลีน ไม่บังคับ
สถานะการปักหมุดใหม่ของแท็บ
-
status
TabStatus ไม่บังคับ
สถานะการโหลดของแท็บ
-
title
string ไม่บังคับ
Chrome 48 ขึ้นไปชื่อใหม่ของแท็บ
-
url
string ไม่บังคับ
URL ของแท็บ หากมีการเปลี่ยนแปลง
-
-
Tab
-
onZoomChange
chrome.tabs.onZoomChange.addListener(
callback: function,
)
เริ่มทำงานเมื่อแท็บซูม
พารามิเตอร์
-
Callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(ZoomChangeInfo: object) => void
-
ZoomChangeInfo
ออบเจ็กต์
-
newZoomFactor
ตัวเลข
-
oldZoomFactor
ตัวเลข
-
tabId
ตัวเลข
-
zoomSettings
-
-