Deskripsi
Gunakan chrome.tabs
API untuk berinteraksi dengan sistem tab browser. Anda dapat menggunakan API ini untuk membuat, mengubah, dan menyusun ulang tab di browser.
Ringkasan
Tabs API tidak hanya menawarkan fitur untuk memanipulasi dan mengelola tab, tetapi juga dapat mendeteksi bahasa tab, mengambil screenshot, dan berkomunikasi dengan skrip konten tab.
Izin
Sebagian besar fitur tidak memerlukan izin apa pun untuk digunakan. Misalnya: membuat tab baru, memuat ulang tab, membuka URL lain, dll.
Ada tiga izin yang harus diketahui developer saat menggunakan Tabs API.
- Izin "tab"
- Izin ini tidak memberikan akses ke namespace
chrome.tabs
. Sebagai gantinya, izin ini memberi ekstensi kemampuan untuk memanggiltabs.query()
terhadap empat properti sensitif pada instancetabs.Tab
:url
,pendingUrl
,title
, danfavIconUrl
. - Izin host
- Izin host memungkinkan ekstensi membaca dan membuat kueri empat properti sensitif
tabs.Tab
tab yang cocok. Pengguna juga dapat berinteraksi langsung dengan tab yang cocok menggunakan metode sepertitabs.captureVisibleTab()
,tabs.executeScript()
,tabs.insertCSS()
, dantabs.removeCSS()
. - Izin "activeTab"
activeTab
memberikan izin host sementara ekstensi untuk tab saat ini sebagai respons terhadap pemanggilan pengguna. Tidak seperti izin host,activeTab
tidak memicu peringatan apa pun.
Manifes
Berikut adalah contoh cara mendeklarasikan setiap izin dalam manifes:
{
"name": "My extension",
...
"permissions": [
"tabs"
],
...
}
{
"name": "My extension",
...
"host_permissions": [
"http://*/*",
"https://*/*"
],
...
}
{
"name": "My extension",
...
"permissions": [
"activeTab"
],
...
}
Kasus penggunaan
Bagian berikut menunjukkan beberapa kasus penggunaan umum.
Membuka halaman ekstensi di tab baru
Pola umum untuk ekstensi adalah membuka halaman orientasi di tab baru saat ekstensi diinstal. Contoh berikut menunjukkan cara melakukannya.
background.js:
chrome.runtime.onInstalled.addListener(({reason}) => {
if (reason === 'install') {
chrome.tabs.create({
url: "onboarding.html"
});
}
});
Mendapatkan tab saat ini
Contoh ini menunjukkan cara pekerja layanan ekstensi dapat mengambil tab aktif dari jendela yang saat ini difokuskan (atau jendela yang terakhir difokuskan, jika tidak ada jendela Chrome yang difokuskan). Ini biasanya dapat dianggap sebagai tab pengguna saat ini.
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);
});
}
Membisukan tab yang ditentukan
Contoh ini menunjukkan cara ekstensi dapat mengubah status dibisukan untuk tab tertentu.
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" }`);
});
}
Memindahkan tab saat ini ke posisi pertama saat diklik
Contoh ini menunjukkan cara memindahkan tab saat penarikan mungkin sedang atau tidak sedang berlangsung. Meskipun contoh ini menggunakan chrome.tabs.move
, Anda dapat menggunakan pola menunggu yang sama untuk panggilan lain yang mengubah tab saat penarikan sedang berlangsung.
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.");
}
});
}
Meneruskan pesan ke skrip konten tab yang dipilih
Contoh ini menunjukkan cara pekerja layanan ekstensi dapat berkomunikasi dengan skrip konten di tab browser tertentu menggunakan 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.
}
Contoh ekstensi
Untuk melihat demo ekstensi Tabs API lainnya, jelajahi salah satu opsi berikut:
Jenis
MutedInfo
Status senyap tab dan alasan perubahan status terakhir.
Properti
-
extensionId
string opsional
ID ekstensi yang mengubah status senyap. Tidak disetel jika ekstensi bukan alasan status dibisukan terakhir kali berubah.
-
dibisukan
boolean
Apakah tab dibisukan (dicegah memutar suara). Tab mungkin dibisukan meskipun belum memutar atau saat ini tidak memutar suara. Setara dengan apakah indikator audio 'diredam' ditampilkan.
-
alasan
MutedInfoReason opsional
Alasan tab dibisukan atau dibunyikan. Tidak disetel jika status bisu tab belum pernah diubah.
MutedInfoReason
Peristiwa yang menyebabkan perubahan status dibisukan.
Enum
"user"
Tindakan input pengguna menetapkan status senyap.
"capture"
Pengambilan tab dimulai, sehingga perubahan status ke mode senyap.
"extension"
Ekstensi, yang diidentifikasi oleh kolom extensionId, menetapkan status diredam.
Tab
Properti
-
aktif
boolean
Apakah tab aktif di jendelanya. Tidak berarti jendela difokuskan.
-
audible
boolean opsional
Chrome 45+Apakah tab telah menghasilkan suara selama beberapa detik terakhir (tetapi mungkin tidak terdengar jika juga dibisukan). Setara dengan apakah indikator 'audio speaker' ditampilkan.
-
autoDiscardable
boolean
Chrome 54+Apakah tab dapat dibuang secara otomatis oleh browser saat resource rendah.
-
dihapus
boolean
Chrome 54+Apakah tab dibuang. Tab yang dibuang adalah tab yang kontennya telah dikeluarkan dari memori, tetapi masih terlihat di panel tab. Kontennya akan dimuat ulang saat diaktifkan berikutnya.
-
favIconUrl
string opsional
URL favicon tab. Properti ini hanya ada jika ekstensi memiliki izin
"tabs"
atau memiliki izin host untuk halaman. String ini juga dapat berupa string kosong jika tab sedang dimuat. -
dibekukan
boolean
Chrome 132+Apakah tab dibekukan. Tab yang dibekukan tidak dapat menjalankan tugas, termasuk pengendali peristiwa atau timer. Tab ini terlihat di deretan tab dan kontennya dimuat dalam memori. Saldo akan dibuka setelah aktivasi.
-
groupId
angka
Chrome 88+ID grup tempat tab berada.
-
tinggi
nomor opsional
Tinggi tab dalam piksel.
-
disorot
boolean
Apakah tab disorot.
-
id
nomor opsional
ID tab. ID tab bersifat unik dalam sesi browser. Dalam beberapa keadaan, tab mungkin tidak diberi ID; misalnya, saat mengkueri tab asing menggunakan
sessions
API, dalam hal ini ID sesi mungkin ada. ID tab juga dapat disetel kechrome.tabs.TAB_ID_NONE
untuk aplikasi dan jendela devtools. -
samaran
boolean
Apakah tab berada di jendela samaran.
-
indeks
angka
Indeks tab berbasis nol dalam jendelanya.
-
lastAccessed
angka
Chrome 121+Terakhir kali tab menjadi aktif di jendelanya sebagai jumlah milidetik sejak epoch.
-
mutedInfo
MutedInfo opsional
Chrome 46+Status senyap tab dan alasan perubahan status terakhir.
-
openerTabId
nomor opsional
ID tab yang membuka tab ini, jika ada. Properti ini hanya ada jika tab pembuka masih ada.
-
pendingUrl
string opsional
Chrome 79+URL yang dituju tab, sebelum di-commit. Properti ini hanya ada jika ekstensi memiliki izin
"tabs"
atau memiliki izin host untuk halaman dan ada navigasi yang tertunda. -
dipasang pin
boolean
Apakah tab disematkan.
-
dipilih
boolean
Tidak digunakan lagiGunakan
tabs.Tab.highlighted
.Apakah tab dipilih.
-
sessionId
string opsional
ID sesi yang digunakan untuk mengidentifikasi tab secara unik yang diperoleh dari API
sessions
. -
status
TabStatus opsional
Status pemuatan tab.
-
judul
string opsional
Judul tab. Properti ini hanya ada jika ekstensi memiliki izin
"tabs"
atau memiliki izin host untuk halaman. -
url
string opsional
URL yang terakhir di-commit dari frame utama tab. Properti ini hanya ada jika ekstensi memiliki izin
"tabs"
atau memiliki izin host untuk halaman. Dapat berupa string kosong jika tab belum di-commit. Lihat jugaTab.pendingUrl
. -
lebar
nomor opsional
Lebar tab dalam piksel.
-
windowId
angka
ID jendela yang berisi tab.
TabStatus
Status pemuatan tab.
Enum
"unloaded"
"loading"
"selesai"
WindowType
Jenis jendela.
Enum
"normal"
"popup"
"panel"
"app"
"devtools"
ZoomSettings
Menentukan cara perubahan zoom di tab ditangani dan pada cakupan apa.
Properti
-
defaultZoomFactor
nomor opsional
Chrome 43+Digunakan untuk menampilkan tingkat zoom default untuk tab saat ini dalam panggilan ke tabs.getZoomSettings.
-
mode
ZoomSettingsMode opsional
Menentukan cara penanganan perubahan zoom, yaitu entitas mana yang bertanggung jawab atas penskalaan halaman yang sebenarnya; defaultnya adalah
automatic
. -
cakupan
ZoomSettingsScope opsional
Menentukan apakah perubahan zoom tetap ada untuk origin halaman, atau hanya berlaku di tab ini; defaultnya adalah
per-origin
saat dalam modeautomatic
, danper-tab
jika tidak.
ZoomSettingsMode
Menentukan cara penanganan perubahan zoom, yaitu entitas mana yang bertanggung jawab atas penskalaan halaman yang sebenarnya; defaultnya adalah automatic
.
Enum
"otomatis"
Perubahan zoom ditangani secara otomatis oleh browser.
"manual"
Menggantikan penanganan otomatis perubahan zoom. Peristiwa onZoomChange
akan tetap dikirim, dan ekstensi bertanggung jawab untuk memproses peristiwa ini dan menskalakan halaman secara manual. Mode ini tidak mendukung zoom per-origin
, sehingga mengabaikan setelan zoom scope
dan mengasumsikan per-tab
.
"disabled"
Menonaktifkan semua zoom di tab. Tab akan kembali ke tingkat zoom default, dan semua perubahan zoom yang dicoba akan diabaikan.
ZoomSettingsScope
Menentukan apakah perubahan zoom tetap ada untuk origin halaman, atau hanya berlaku di tab ini; defaultnya adalah per-origin
saat dalam mode automatic
, dan per-tab
jika tidak.
Enum
"per-origin"
Perubahan zoom tetap ada di asal halaman yang di-zoom, yaitu semua tab lain yang dibuka ke asal yang sama juga di-zoom. Selain itu, perubahan zoom per-origin
disimpan dengan asal, yang berarti bahwa saat membuka halaman lain di asal yang sama, semuanya akan di-zoom ke faktor zoom yang sama. Cakupan per-origin
hanya tersedia dalam mode automatic
.
"per-tab"
Perubahan Zoom hanya berlaku di tab ini, dan perubahan zoom di tab lain tidak memengaruhi zoom tab ini. Selain itu, perubahan zoom per-tab
disetel ulang saat navigasi; membuka tab selalu memuat halaman dengan faktor zoom per-origin
.
Properti
MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND
Jumlah maksimum panggilan captureVisibleTab
per detik. captureVisibleTab
mahal dan tidak boleh dipanggil terlalu sering.
Nilai
2
TAB_ID_NONE
ID yang merepresentasikan tidak adanya tab browser.
Nilai
-1
TAB_INDEX_NONE
Indeks yang menunjukkan tidak adanya indeks tab dalam tab_strip.
Nilai
-1
Metode
captureVisibleTab()
chrome.tabs.captureVisibleTab(
windowId?: number,
options?: ImageDetails,
callback?: function,
): Promise<string>
Mengambil area yang terlihat dari tab yang sedang aktif di jendela yang ditentukan. Untuk memanggil metode ini, ekstensi harus memiliki izin <all_urls> atau izin activeTab. Selain situs yang biasanya dapat diakses oleh ekstensi, metode ini memungkinkan ekstensi merekam situs sensitif yang dibatasi, termasuk halaman skema chrome:, halaman ekstensi lain, dan URL data:. Situs sensitif ini hanya dapat direkam dengan izin activeTab. URL file hanya dapat diambil jika ekstensi telah diberi akses file.
Parameter
-
windowId
nomor opsional
Jendela target. Default-nya adalah jendela saat ini.
-
opsi
ImageDetails opsional
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(dataUrl: string) => void
-
dataUrl
string
URL data yang mengenkode gambar area yang terlihat dari tab yang direkam. Dapat ditetapkan ke properti 'src' dari elemen
img
HTML untuk ditampilkan.
-
Hasil
-
Promise<string>
Chrome 88+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback.
connect()
chrome.tabs.connect(
tabId: number,
connectInfo?: object,
): runtime.Port
Terhubung ke skrip konten di tab yang ditentukan. Peristiwa runtime.onConnect
diaktifkan di setiap skrip konten yang berjalan di tab yang ditentukan untuk ekstensi saat ini. Untuk mengetahui detail selengkapnya, lihat Content Script Messaging.
Parameter
-
tabId
angka
-
connectInfo
objek opsional
-
documentId
string opsional
Chrome 106+Membuka port ke dokumen tertentu yang diidentifikasi oleh
documentId
, bukan semua frame di tab. -
frameId
nomor opsional
Membuka port ke frame tertentu yang diidentifikasi oleh
frameId
, bukan semua frame di tab. -
nama
string opsional
Diteruskan ke onConnect untuk skrip konten yang memproses peristiwa koneksi.
-
Hasil
-
Port yang dapat digunakan untuk berkomunikasi dengan skrip konten yang berjalan di tab tertentu. Peristiwa
runtime.Port
port diaktifkan jika tab ditutup atau tidak ada.
create()
chrome.tabs.create(
createProperties: object,
callback?: function,
): Promise<Tab>
Membuat tab baru.
Parameter
-
createProperties
objek
-
aktif
boolean opsional
Apakah tab harus menjadi tab aktif di jendela. Tidak memengaruhi apakah jendela difokuskan atau tidak (lihat
windows.update
). Defaultnya adalahtrue
. -
indeks
nomor opsional
Posisi tab yang harus diambil di jendela. Nilai yang diberikan dibatasi antara nol dan jumlah tab di jendela.
-
openerTabId
nomor opsional
ID tab yang membuka tab ini. Jika ditentukan, tab pembuka harus berada di jendela yang sama dengan tab yang baru dibuat.
-
dipasang pin
boolean opsional
Apakah tab harus disematkan. Default-nya adalah
false
-
dipilih
boolean opsional
Tidak digunakan lagiGunakan aktif.
Apakah tab harus menjadi tab yang dipilih di jendela. Default-nya adalah
true
-
url
string opsional
URL untuk membuka tab pada awalnya. URL yang sepenuhnya memenuhi syarat harus menyertakan skema (yaitu, 'http://www.google.com', bukan 'www.google.com'). URL relatif bersifat relatif terhadap halaman saat ini dalam ekstensi. Default-nya adalah Halaman Tab Baru.
-
windowId
nomor opsional
Jendela tempat tab baru akan dibuat. Default-nya adalah jendela saat ini.
-
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(tab: Tab) => void
-
tab
Tab yang dibuat.
-
Hasil
-
Promise<Tab>
Chrome 88+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback.
detectLanguage()
chrome.tabs.detectLanguage(
tabId?: number,
callback?: function,
): Promise<string>
Mendeteksi bahasa utama konten di tab.
Parameter
-
tabId
nomor opsional
Secara default, tab aktif jendela saat ini.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(language: string) => void
-
language
string
Kode bahasa ISO seperti
en
ataufr
. Untuk mengetahui daftar lengkap bahasa yang didukung oleh metode ini, lihat kLanguageInfoTable. Kolom kedua hingga keempat diperiksa dan nilai non-NULL pertama ditampilkan, kecuali untuk bahasa China Sederhana yang menampilkanzh-CN
. Untuk bahasa yang tidak diketahui/tidak ditentukan,und
akan ditampilkan.
-
Hasil
-
Promise<string>
Chrome 88+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback.
discard()
chrome.tabs.discard(
tabId?: number,
callback?: function,
): Promise<Tab | undefined>
Menghapus tab dari memori. Tab yang dibuang masih terlihat di kolom tab dan dimuat ulang saat diaktifkan.
Parameter
-
tabId
nomor opsional
ID tab yang akan dihapus. Jika ditentukan, tab akan dihapus kecuali jika tab aktif atau sudah dihapus. Jika tidak ada, browser akan menutup tab yang paling tidak penting. Tindakan ini dapat gagal jika tidak ada tab yang dapat dibuang.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(tab?: Tab) => void
-
tab
Tab opsional
Tab yang dihapus, jika berhasil dihapus; jika tidak, tidak ditentukan.
-
Hasil
-
Promise<Tab | undefined>
Chrome 88+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback.
duplicate()
chrome.tabs.duplicate(
tabId: number,
callback?: function,
): Promise<Tab | undefined>
Menduplikasi tab.
Parameter
-
tabId
angka
ID tab yang akan diduplikasi.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(tab?: Tab) => void
Hasil
-
Promise<Tab | undefined>
Chrome 88+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback.
executeScript()
chrome.tabs.executeScript(
tabId?: number,
details: InjectDetails,
callback?: function,
): Promise<any[] | undefined>
Digantikan oleh scripting.executeScript
di Manifes V3.
Memasukkan kode JavaScript ke dalam halaman. Untuk mengetahui detailnya, lihat bagian penyisipan terprogram dalam dokumen skrip konten.
Parameter
-
tabId
nomor opsional
ID tab tempat skrip akan dijalankan; secara default adalah tab aktif di jendela saat ini.
-
detail
Detail skrip yang akan dijalankan. Properti kode atau file harus ditetapkan, tetapi keduanya tidak boleh ditetapkan secara bersamaan.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(result?: any[]) => void
-
hasil
any[] opsional
Hasil skrip di setiap frame yang disisipkan.
-
Hasil
-
Promise<any[] | undefined>
Chrome 88+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback.
get()
chrome.tabs.get(
tabId: number,
callback?: function,
): Promise<Tab>
Mengambil detail tentang tab yang ditentukan.
Parameter
-
tabId
angka
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(tab: Tab) => void
-
tab
-
Hasil
-
Promise<Tab>
Chrome 88+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback.
getAllInWindow()
chrome.tabs.getAllInWindow(
windowId?: number,
callback?: function,
): Promise<Tab[]>
Harap gunakan tabs.query
{windowId: windowId}
.
Mendapatkan detail tentang semua tab di jendela yang ditentukan.
Parameter
-
windowId
nomor opsional
Default-nya adalah jendela saat ini.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(tabs: Tab[]) => void
-
tab
Tab[]
-
Hasil
-
Promise<Tab[]>
Chrome 88+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback.
getCurrent()
chrome.tabs.getCurrent(
callback?: function,
): Promise<Tab | undefined>
Mendapatkan tab tempat panggilan skrip ini dilakukan. Menampilkan undefined
jika dipanggil dari konteks non-tab (misalnya, halaman latar belakang atau tampilan pop-up).
Parameter
Hasil
-
Promise<Tab | undefined>
Chrome 88+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback.
getSelected()
chrome.tabs.getSelected(
windowId?: number,
callback?: function,
): Promise<Tab>
Harap gunakan tabs.query
{active: true}
.
Mendapatkan tab yang dipilih di jendela yang ditentukan.
Parameter
-
windowId
nomor opsional
Default-nya adalah jendela saat ini.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(tab: Tab) => void
-
tab
-
Hasil
-
Promise<Tab>
Chrome 88+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback.
getZoom()
chrome.tabs.getZoom(
tabId?: number,
callback?: function,
): Promise<number>
Mendapatkan faktor zoom saat ini dari tab yang ditentukan.
Parameter
-
tabId
nomor opsional
ID tab untuk mendapatkan faktor zoom saat ini; defaultnya adalah tab aktif di jendela saat ini.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(zoomFactor: number) => void
-
zoomFactor
angka
Faktor zoom saat ini pada tab.
-
Hasil
-
Promise<number>
Chrome 88+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback.
getZoomSettings()
chrome.tabs.getZoomSettings(
tabId?: number,
callback?: function,
): Promise<ZoomSettings>
Mendapatkan setelan zoom saat ini dari tab yang ditentukan.
Parameter
-
tabId
nomor opsional
ID tab untuk mendapatkan setelan zoom saat ini; defaultnya adalah tab aktif di jendela saat ini.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(zoomSettings: ZoomSettings) => void
-
zoomSettings
Setelan zoom tab saat ini.
-
Hasil
-
Promise<ZoomSettings>
Chrome 88+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback.
goBack()
chrome.tabs.goBack(
tabId?: number,
callback?: function,
): Promise<void>
Kembali ke halaman sebelumnya, jika ada.
Parameter
-
tabId
nomor opsional
ID tab untuk kembali; defaultnya adalah tab yang dipilih di jendela saat ini.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:() => void
Hasil
-
Promise<void>
Chrome 88+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback.
goForward()
chrome.tabs.goForward(
tabId?: number,
callback?: function,
): Promise<void>
Maju ke halaman berikutnya, jika ada.
Parameter
-
tabId
nomor opsional
ID tab untuk membuka tab berikutnya; secara default adalah tab yang dipilih di jendela saat ini.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:() => void
Hasil
-
Promise<void>
Chrome 88+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback.
group()
chrome.tabs.group(
options: object,
callback?: function,
): Promise<number>
Menambahkan satu atau beberapa tab ke grup tertentu, atau jika tidak ada grup yang ditentukan, menambahkan tab yang diberikan ke grup yang baru dibuat.
Parameter
-
opsi
objek
-
createProperties
objek opsional
Konfigurasi untuk membuat grup. Tidak dapat digunakan jika groupId sudah ditentukan.
-
windowId
nomor opsional
Jendela grup baru. Default-nya adalah jendela saat ini.
-
-
groupId
nomor opsional
ID grup tempat tab akan ditambahkan. Jika tidak ditentukan, grup baru akan dibuat.
-
tabIds
number | [number, ...number[]]
ID tab atau daftar ID tab yang akan ditambahkan ke grup tertentu.
-
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(groupId: number) => void
-
groupId
angka
ID grup tempat tab ditambahkan.
-
Hasil
-
Promise<number>
Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback.
highlight()
chrome.tabs.highlight(
highlightInfo: object,
callback?: function,
): Promise<windows.Window>
Menyoroti tab tertentu dan berfokus pada tab pertama dalam grup. Tidak akan melakukan apa pun jika tab yang ditentukan saat ini aktif.
Parameter
-
highlightInfo
objek
-
tab
number | number[]
Satu atau beberapa indeks tab yang akan ditandai.
-
windowId
nomor opsional
Jendela yang berisi tab.
-
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(window: Window) => void
-
jendela
Berisi detail tentang jendela yang tabnya disorot.
-
Hasil
-
Promise<windows.Window>
Chrome 88+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback.
insertCSS()
chrome.tabs.insertCSS(
tabId?: number,
details: InjectDetails,
callback?: function,
): Promise<void>
Digantikan oleh scripting.insertCSS
di Manifes V3.
Memasukkan CSS ke halaman. Gaya yang disisipkan dengan metode ini dapat dihapus dengan scripting.removeCSS
. Untuk mengetahui detailnya, lihat bagian penyisipan terprogram dalam dokumen skrip konten.
Parameter
-
tabId
nomor opsional
ID tab tempat CSS akan disisipkan; defaultnya adalah tab aktif di jendela saat ini.
-
detail
Detail teks CSS yang akan disisipkan. Properti kode atau file harus ditetapkan, tetapi keduanya tidak boleh ditetapkan secara bersamaan.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:() => void
Hasil
-
Promise<void>
Chrome 88+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback.
move()
chrome.tabs.move(
tabIds: number | number[],
moveProperties: object,
callback?: function,
): Promise<Tab | Tab[]>
Memindahkan satu atau beberapa tab ke posisi baru dalam jendelanya, atau ke jendela baru. Perhatikan bahwa tab hanya dapat dipindahkan ke dan dari jendela normal (window.type === "normal").
Parameter
-
tabIds
number | number[]
ID tab atau daftar ID tab yang akan dipindahkan.
-
moveProperties
objek
-
indeks
angka
Posisi untuk memindahkan jendela. Gunakan
-1
untuk menempatkan tab di akhir jendela. -
windowId
nomor opsional
Defaultnya adalah jendela tempat tab berada saat ini.
-
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(tabs: Tab | Tab[]) => void
Hasil
-
Chrome 88+
Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback.
query()
chrome.tabs.query(
queryInfo: object,
callback?: function,
): Promise<Tab[]>
Mendapatkan semua tab yang memiliki properti tertentu, atau semua tab jika tidak ada properti yang ditentukan.
Parameter
-
queryInfo
objek
-
aktif
boolean opsional
Apakah tab aktif di jendelanya.
-
audible
boolean opsional
Chrome 45+Apakah tab dapat didengar.
-
autoDiscardable
boolean opsional
Chrome 54+Apakah tab dapat dibuang secara otomatis oleh browser saat resource rendah.
-
currentWindow
boolean opsional
Apakah tab berada di jendela saat ini.
-
dihapus
boolean opsional
Chrome 54+Apakah tab dibuang. Tab yang dibuang adalah tab yang kontennya telah dikeluarkan dari memori, tetapi masih terlihat di panel tab. Kontennya dimuat ulang saat diaktifkan berikutnya.
-
dibekukan
boolean opsional
Chrome 132+Apakah tab dibekukan atau tidak. Tab yang dibekukan tidak dapat menjalankan tugas, termasuk pengendali peristiwa atau timer. Tab ini terlihat di deretan tab dan kontennya dimuat dalam memori. Saldo akan dibuka setelah aktivasi.
-
groupId
nomor opsional
Chrome 88+ID grup tempat tab berada, atau
tabGroups.TAB_GROUP_ID_NONE
untuk tab yang tidak dikelompokkan. -
disorot
boolean opsional
Apakah tab ditandai.
-
indeks
nomor opsional
Posisi tab dalam jendelanya.
-
lastFocusedWindow
boolean opsional
Apakah tab berada di jendela yang terakhir difokuskan.
-
dibisukan
boolean opsional
Chrome 45+Apakah tab dibisukan.
-
dipasang pin
boolean opsional
Apakah tab disematkan atau tidak.
-
splitViewId
nomor opsional
TertundaID Tampilan Terpisah tempat tab berada, atau
tabs.SPLIT_VIEW_ID_NONE
untuk tab yang tidak berada dalam Tampilan Terpisah. -
status
TabStatus opsional
Status pemuatan tab.
-
judul
string opsional
Mencocokkan judul halaman dengan pola. Properti ini diabaikan jika ekstensi tidak memiliki izin
"tabs"
atau izin host untuk halaman. -
url
string | string[] opsional
Mencocokkan tab dengan satu atau beberapa pola URL. ID fragmen tidak cocok. Properti ini diabaikan jika ekstensi tidak memiliki izin
"tabs"
atau izin host untuk halaman. -
windowId
nomor opsional
ID jendela induk, atau
windows.WINDOW_ID_CURRENT
untuk jendela saat ini. -
windowType
WindowType opsional
Jenis jendela tempat tab berada.
-
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(result: Tab[]) => void
-
hasil
Tab[]
-
Hasil
-
Promise<Tab[]>
Chrome 88+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback.
reload()
chrome.tabs.reload(
tabId?: number,
reloadProperties?: object,
callback?: function,
): Promise<void>
Memuat ulang tab.
Parameter
-
tabId
nomor opsional
ID tab yang akan dimuat ulang; secara default adalah tab yang dipilih di jendela saat ini.
-
reloadProperties
objek opsional
-
bypassCache
boolean opsional
Apakah akan melewati caching lokal. Default-nya adalah
false
.
-
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:() => void
Hasil
-
Promise<void>
Chrome 88+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback.
remove()
chrome.tabs.remove(
tabIds: number | number[],
callback?: function,
): Promise<void>
Menutup satu atau beberapa tab.
Parameter
-
tabIds
number | number[]
ID tab atau daftar ID tab yang akan ditutup.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:() => void
Hasil
-
Promise<void>
Chrome 88+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback.
removeCSS()
chrome.tabs.removeCSS(
tabId?: number,
details: DeleteInjectionDetails,
callback?: function,
): Promise<void>
Digantikan oleh scripting.removeCSS
di Manifes V3.
Menghapus CSS dari halaman yang sebelumnya disisipkan oleh panggilan ke scripting.insertCSS
.
Parameter
-
tabId
nomor opsional
ID tab tempat CSS akan dihapus; secara default adalah tab aktif di jendela saat ini.
-
detail
Detail teks CSS yang akan dihapus. Properti kode atau file harus ditetapkan, tetapi keduanya tidak boleh ditetapkan secara bersamaan.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:() => void
Hasil
-
Promise<void>
Chrome 88+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback.
sendMessage()
chrome.tabs.sendMessage(
tabId: number,
message: any,
options?: object,
callback?: function,
): Promise<any>
Mengirim satu pesan ke skrip konten di tab yang ditentukan, dengan callback opsional yang akan dijalankan saat respons dikirim kembali. Peristiwa runtime.onMessage
diaktifkan di setiap skrip konten yang berjalan di tab yang ditentukan untuk ekstensi saat ini.
Parameter
-
tabId
angka
-
pesan
apa pun
Pesan yang akan dikirim. Pesan ini harus berupa objek yang dapat di-JSON-kan.
-
opsi
objek opsional
-
callback
fungsi opsional
Chrome 99+Parameter
callback
terlihat seperti:(response: any) => void
-
respons
apa pun
Objek respons JSON yang dikirim oleh handler pesan. Jika terjadi error saat terhubung ke tab yang ditentukan, callback dipanggil tanpa argumen dan
runtime.lastError
disetel ke pesan error.
-
Hasil
-
Promise<any>
Chrome 99+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback.
sendRequest()
chrome.tabs.sendRequest(
tabId: number,
request: any,
callback?: function,
): Promise<any>
Gunakan runtime.sendMessage
.
Mengirim satu permintaan ke skrip konten di tab yang ditentukan, dengan callback opsional untuk dijalankan saat respons dikirim kembali. Peristiwa extension.onRequest
diaktifkan di setiap skrip konten yang berjalan di tab yang ditentukan untuk ekstensi saat ini.
Parameter
-
tabId
angka
-
minta
apa pun
-
callback
fungsi opsional
Chrome 99+Parameter
callback
terlihat seperti:(response: any) => void
-
respons
apa pun
Objek respons JSON yang dikirim oleh pengendali permintaan. Jika terjadi error saat terhubung ke tab yang ditentukan, callback dipanggil tanpa argumen dan
runtime.lastError
disetel ke pesan error.
-
Hasil
-
Promise<any>
Chrome 99+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback.
setZoom()
chrome.tabs.setZoom(
tabId?: number,
zoomFactor: number,
callback?: function,
): Promise<void>
Melakukan zoom pada tab tertentu.
Parameter
-
tabId
nomor opsional
ID tab yang akan di-zoom; secara default adalah tab aktif di jendela saat ini.
-
zoomFactor
angka
Faktor zoom baru. Nilai
0
akan menyetel tab ke faktor zoom default saat ini. Nilai yang lebih besar dari0
menentukan faktor zoom (mungkin non-default) untuk tab. -
callback
fungsi opsional
Parameter
callback
terlihat seperti:() => void
Hasil
-
Promise<void>
Chrome 88+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback.
setZoomSettings()
chrome.tabs.setZoomSettings(
tabId?: number,
zoomSettings: ZoomSettings,
callback?: function,
): Promise<void>
Menetapkan setelan zoom untuk tab tertentu, yang menentukan cara perubahan zoom ditangani. Setelan ini akan direset ke default saat membuka tab.
Parameter
-
tabId
nomor opsional
ID tab untuk mengubah setelan zoom; defaultnya adalah tab aktif di jendela saat ini.
-
zoomSettings
Menentukan cara penanganan perubahan zoom dan cakupannya.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:() => void
Hasil
-
Promise<void>
Chrome 88+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback.
ungroup()
chrome.tabs.ungroup(
tabIds: number | [number, ...number[]],
callback?: function,
): Promise<void>
Menghapus satu atau beberapa tab dari grupnya masing-masing. Jika ada grup yang kosong, grup tersebut akan dihapus.
Parameter
-
tabIds
number | [number, ...number[]]
ID tab atau daftar ID tab yang akan dihapus dari grup masing-masing.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:() => void
Hasil
-
Promise<void>
Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback.
update()
chrome.tabs.update(
tabId?: number,
updateProperties: object,
callback?: function,
): Promise<Tab | undefined>
Mengubah properti tab. Properti yang tidak ditentukan di updateProperties
tidak diubah.
Parameter
-
tabId
nomor opsional
Secara default, tab yang dipilih adalah tab jendela saat ini.
-
updateProperties
objek
-
aktif
boolean opsional
Apakah tab harus aktif. Tidak memengaruhi apakah jendela difokuskan (lihat
windows.update
). -
autoDiscardable
boolean opsional
Chrome 54+Apakah tab harus dibuang secara otomatis oleh browser saat resource rendah.
-
disorot
boolean opsional
Menambahkan atau menghapus tab dari pilihan saat ini.
-
dibisukan
boolean opsional
Chrome 45+Apakah tab harus dibisukan.
-
openerTabId
nomor opsional
ID tab yang membuka tab ini. Jika ditentukan, tab pembuka harus berada di jendela yang sama dengan tab ini.
-
dipasang pin
boolean opsional
Apakah tab harus disematkan.
-
dipilih
boolean opsional
Tidak digunakan lagiGunakan yang ditandai.
Apakah tab harus dipilih.
-
url
string opsional
URL yang akan dituju tab. URL JavaScript tidak didukung; gunakan
scripting.executeScript
.
-
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(tab?: Tab) => void
Hasil
-
Promise<Tab | undefined>
Chrome 88+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback.
Acara
onActivated
chrome.tabs.onActivated.addListener(
callback: function,
)
Diaktifkan saat tab aktif di jendela berubah. Perhatikan bahwa URL tab mungkin tidak ditetapkan pada saat peristiwa ini diaktifkan, tetapi Anda dapat memproses peristiwa onUpdated agar diberi tahu saat URL ditetapkan.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:(activeInfo: object) => void
-
activeInfo
objek
-
tabId
angka
ID tab yang telah menjadi aktif.
-
windowId
angka
ID jendela tempat tab aktif berubah.
-
-
onActiveChanged
chrome.tabs.onActiveChanged.addListener(
callback: function,
)
Gunakan tabs.onActivated
.
Diaktifkan saat tab yang dipilih di jendela berubah. Perhatikan bahwa URL tab mungkin tidak ditetapkan pada saat peristiwa ini diaktifkan, tetapi Anda dapat memantau peristiwa tabs.onUpdated
agar diberi tahu saat URL ditetapkan.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:(tabId: number, selectInfo: object) => void
-
tabId
angka
-
selectInfo
objek
-
windowId
angka
ID jendela tempat tab yang dipilih diubah.
-
-
onAttached
chrome.tabs.onAttached.addListener(
callback: function,
)
Diaktifkan saat tab dilampirkan ke jendela; misalnya, karena dipindahkan antar-jendela.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:(tabId: number, attachInfo: object) => void
-
tabId
angka
-
attachInfo
objek
-
newPosition
angka
-
newWindowId
angka
-
-
onCreated
chrome.tabs.onCreated.addListener(
callback: function,
)
Diaktifkan saat tab dibuat. Perhatikan bahwa URL tab dan keanggotaan grup tab mungkin tidak ditetapkan pada saat peristiwa ini dipicu, tetapi Anda dapat memproses peristiwa onUpdated agar diberi tahu saat URL ditetapkan atau tab ditambahkan ke grup tab.
onDetached
chrome.tabs.onDetached.addListener(
callback: function,
)
Diaktifkan saat tab dilepas dari jendela; misalnya, karena dipindahkan antarjendela.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:(tabId: number, detachInfo: object) => void
-
tabId
angka
-
detachInfo
objek
-
oldPosition
angka
-
oldWindowId
angka
-
-
onHighlightChanged
chrome.tabs.onHighlightChanged.addListener(
callback: function,
)
Gunakan tabs.onHighlighted
.
Diaktifkan saat tab yang disorot atau dipilih di jendela berubah.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:(selectInfo: object) => void
-
selectInfo
objek
-
tabIds
number[]
Semua tab yang disorot di jendela.
-
windowId
angka
Jendela yang tabnya berubah.
-
-
onHighlighted
chrome.tabs.onHighlighted.addListener(
callback: function,
)
Diaktifkan saat tab yang disorot atau dipilih di jendela berubah.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:(highlightInfo: object) => void
-
highlightInfo
objek
-
tabIds
number[]
Semua tab yang disorot di jendela.
-
windowId
angka
Jendela yang tabnya berubah.
-
-
onMoved
chrome.tabs.onMoved.addListener(
callback: function,
)
Diaktifkan saat tab dipindahkan dalam jendela. Hanya satu peristiwa pemindahan yang dipicu, yang merepresentasikan tab yang dipindahkan langsung oleh pengguna. Peristiwa pemindahan tidak diaktifkan untuk tab lain yang harus dipindahkan sebagai respons terhadap tab yang dipindahkan secara manual. Peristiwa ini tidak diaktifkan saat tab dipindahkan antar-jendela; untuk mengetahui detailnya, lihat tabs.onDetached
.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:(tabId: number, moveInfo: object) => void
-
tabId
angka
-
moveInfo
objek
-
fromIndex
angka
-
toIndex
angka
-
windowId
angka
-
-
onRemoved
chrome.tabs.onRemoved.addListener(
callback: function,
)
Diaktifkan saat tab ditutup.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:(tabId: number, removeInfo: object) => void
-
tabId
angka
-
removeInfo
objek
-
isWindowClosing
boolean
Benar jika tab ditutup karena jendela induknya ditutup.
-
windowId
angka
Jendela yang tabnya ditutup.
-
-
onReplaced
chrome.tabs.onReplaced.addListener(
callback: function,
)
Diaktifkan saat tab diganti dengan tab lain karena pra-rendering atau instan.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:(addedTabId: number, removedTabId: number) => void
-
addedTabId
angka
-
removedTabId
angka
-
onSelectionChanged
chrome.tabs.onSelectionChanged.addListener(
callback: function,
)
Gunakan tabs.onActivated
.
Diaktifkan saat tab yang dipilih di jendela berubah.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:(tabId: number, selectInfo: object) => void
-
tabId
angka
-
selectInfo
objek
-
windowId
angka
ID jendela tempat tab yang dipilih diubah.
-
-
onUpdated
chrome.tabs.onUpdated.addListener(
callback: function,
)
Diaktifkan saat tab diperbarui.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:(tabId: number, changeInfo: object, tab: Tab) => void
-
tabId
angka
-
changeInfo
objek
-
audible
boolean opsional
Chrome 45+Status terdengar baru tab.
-
autoDiscardable
boolean opsional
Chrome 54+Status dapat dihapus otomatis baru tab.
-
dihapus
boolean opsional
Chrome 54+Status baru tab yang dihapus.
-
favIconUrl
string opsional
URL favicon baru tab.
-
dibekukan
boolean opsional
Chrome 132+Status baru tab yang dibekukan.
-
groupId
nomor opsional
Chrome 88+Grup baru tab.
-
mutedInfo
MutedInfo opsional
Chrome 46+Status baru tab yang disenyapkan dan alasan perubahan.
-
dipasang pin
boolean opsional
Status baru tab yang disematkan.
-
splitViewId
nomor opsional
TertundaTampilan Terpisah baru tab.
-
status
TabStatus opsional
Status pemuatan tab.
-
judul
string opsional
Chrome 48+Judul baru tab.
-
url
string opsional
URL tab jika telah berubah.
-
-
tab
-
onZoomChange
chrome.tabs.onZoomChange.addListener(
callback: function,
)
Diaktifkan saat tab dizoom.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:(ZoomChangeInfo: object) => void
-
ZoomChangeInfo
objek
-
newZoomFactor
angka
-
oldZoomFactor
angka
-
tabId
angka
-
zoomSettings
-
-