Deskripsi
Gunakan chrome.tabs
API untuk berinteraksi dengan sistem tab browser. Anda dapat menggunakan API ini untuk membuat, mengubah, dan mengatur ulang tab di browser.
Ringkasan
Tabs API tidak hanya menawarkan fitur untuk memanipulasi dan mengelola tab, tetapi juga dapat mendeteksi bahasa tab, ambil screenshot, lalu berkomunikasi dengan skrip konten tab.
Izin
Sebagian besar fitur tidak memerlukan izin apa pun untuk digunakan. Misalnya: membuat tab baru, memuat ulang tab, menavigasi ke URL lain, dll.
Ada tiga izin yang harus diperhatikan developer saat menggunakan Tabs API.
- "Tab" izin
- Izin ini tidak memberikan akses ke namespace
chrome.tabs
. Sebaliknya, hal itu memberikan ekstensi kemampuan untuk memanggiltabs.query()
terhadap empat properti sensitif pada instancetabs.Tab
:url
,pendingUrl
,title
, danfavIconUrl
. - Izin host
- Izin host memungkinkan ekstensi membaca dan mengkueri empat item sensitif tab yang cocok
Properti
tabs.Tab
. Mereka juga dapat berinteraksi langsung dengan tab yang cocok menggunakan metode seperti sebagaitabs.captureVisibleTab()
,tabs.executeScript()
,tabs.insertCSS()
, dantabs.removeCSS()
. - "activeTab" izin
activeTab
memberikan izin host sementara kepada ekstensi untuk tab saat ini di 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 terinstal. 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 paling baru 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);
});
}
Menonaktifkan tab tertentu
Contoh ini menunjukkan cara ekstensi dapat mengalihkan status tanpa suara 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 memperlihatkan cara memindahkan tab saat penyeretan mungkin sedang berlangsung atau tidak. Meskipun contoh ini
menggunakan chrome.tabs.move
, Anda dapat menggunakan pola tunggu yang sama untuk panggilan lain yang mengubah tab saat
proses tarik 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 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 demo ekstensi Tabs API lainnya, pelajari salah satu hal berikut:
Jenis
MutedInfo
Status tab dibisukan dan alasan perubahan status terakhir.
Properti
-
extensionId
string opsional
ID ekstensi yang mengubah status dibisukan. Tidak ditetapkan jika ekstensi bukan penyebab perubahan status yang dibisukan terakhir kali.
-
dibisukan
boolean
Apakah tab dibisukan (dicegah agar tidak memutar suara). Tab dapat dibisukan meskipun tab tidak diputar atau tidak sedang memutar suara. Setara dengan apakah tombol 'dibunyikan' indikator audio ditampilkan.
-
alasan
MutedInfoReason opsional
Alasan tab dibisukan atau dibunyikan. Tidak ditetapkan jika status nonaktif tab tidak pernah diubah.
MutedInfoReason
Peristiwa yang menyebabkan perubahan status tanpa suara.
Enum
"user"
Tindakan input pengguna menetapkan status tanpa suara.
"capture"
Pengambilan tab dimulai, memaksa perubahan status yang dibisukan.
"extension"
Ekstensi, yang diidentifikasi oleh kolom extensionId, menetapkan status tanpa suara.
Tab
Properti
-
aktif
boolean
Apakah tab aktif di jendelanya atau tidak. Tidak berarti jendela tersebut terfokus.
-
audible
boolean opsional
Chrome 45 dan yang lebih baruApakah tab telah menghasilkan suara selama beberapa detik terakhir (tetapi mungkin tidak akan terdengar jika dibisukan). Setara dengan apakah 'audio speaker' indikator apa yang ditunjukkan.
-
autoDiscardable
boolean
Chrome 54 dan yang lebih baruApakah tab dapat dihapus otomatis oleh browser saat resource rendah.
-
dihapus
boolean
Chrome 54 dan yang lebih baruApakah tab dihapus. Tab yang dihapus adalah tab yang kontennya telah dihapus muatannya dari memori, tetapi masih terlihat di tab setrip. Kontennya dimuat ulang saat berikutnya diaktifkan.
-
favIconUrl
string opsional
URL favicon tab. Properti ini hanya ada jika manifes ekstensi menyertakan izin
"tabs"
. Nilai ini mungkin juga berupa string kosong jika tab sedang dimuat. -
groupId
angka
Chrome 88 dan yang lebih baruID grup tempat tab berada.
-
tinggi
angka opsional
Tinggi tab dalam piksel.
-
disorot
boolean
Apakah tab disorot atau tidak.
-
id
angka opsional
ID tab. ID tab bersifat unik di dalam sesi browser. Dalam beberapa situasi, tab mungkin tidak memiliki ID; misalnya, saat membuat kueri tab asing menggunakan
sessions
API, dalam hal ini ID sesi mungkin ada. ID tab juga dapat disetel kechrome.tabs.TAB_ID_NONE
untuk jendela aplikasi dan devtools. -
samaran
boolean
Apakah tab berada di jendela samaran.
-
indeks
angka
Indeks tab berbasis nol di dalam jendelanya.
-
lastAccessed
angka
Chrome 121 dan yang lebih baruTerakhir kali tab diakses sebagai jumlah milidetik sejak epoch.
-
mutedInfo
MutedInfo opsional
Chrome 46 dan yang lebih baruStatus tab dibisukan dan alasan perubahan status terakhir.
-
openerTabId
angka opsional
ID tab yang membuka tab ini, jika ada. Properti ini hanya ada jika tab pembuka masih ada.
-
pendingUrl
string opsional
Chrome 79 dan yang lebih baruURL yang dituju tab, sebelum di-commit. Properti ini hanya ada jika manifes ekstensi menyertakan izin
"tabs"
dan ada navigasi yang tertunda. -
dipasang pin
boolean
Apakah tab disematkan.
-
dipilih
boolean
Tidak digunakan lagiHarap gunakan
tabs.Tab.highlighted
.Apakah tab dipilih atau tidak.
-
sessionId
string opsional
ID sesi yang digunakan untuk mengidentifikasi tab secara unik yang diperoleh dari
sessions
API. -
status
TabStatus opsional
Status pemuatan tab.
-
judul
string opsional
Judul tab. Properti ini hanya ada jika manifes ekstensi menyertakan izin
"tabs"
. -
url
string opsional
URL yang terakhir digunakan dari frame utama tab. Properti ini hanya ada jika manifes ekstensi menyertakan izin
"tabs"
dan dapat berupa string kosong jika tab belum di-commit. Lihat jugaTab.pendingUrl
. -
lebar
angka opsional
Lebar tab dalam piksel.
-
windowId
angka
ID jendela yang berisi tab.
TabStatus
Status pemuatan tab.
Enum
"tidak dimuat"
"memuat"
"selesai"
WindowType
Jenis jendela.
Enum
"normal"
"popup"
"panel"
"aplikasi"
"devtools"
ZoomSettings
Menentukan bagaimana perubahan zoom dalam tab ditangani dan pada cakupannya.
Properti
-
defaultZoomFactor
angka opsional
Chrome 43 dan yang lebih baruDigunakan untuk menampilkan tingkat zoom default untuk tab saat ini dalam panggilan ke tab.getZoomSettings.
-
mode
ZoomSettingsMode optional
Menentukan bagaimana perubahan zoom ditangani, misalnya entitas mana yang bertanggung jawab atas penskalaan halaman yang sebenarnya; nilai defaultnya adalah
automatic
. -
cakupan
ZoomSettingsScope opsional
Menentukan apakah perubahan zoom tetap ada untuk asal halaman, atau hanya diterapkan di tab ini; default ke
per-origin
saat dalam modeautomatic
, danper-tab
jika tidak.
ZoomSettingsMode
Menentukan bagaimana perubahan zoom ditangani, misalnya entitas mana yang bertanggung jawab atas penskalaan halaman yang sebenarnya; nilai defaultnya adalah automatic
.
Enum
"otomatis"
Perubahan zoom ditangani secara otomatis oleh browser.
"manual"
Mengganti 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
.
"dinonaktifkan"
Menonaktifkan semua zoom di tab. Tab akan kembali ke tingkat zoom default, dan semua percobaan perubahan zoom akan diabaikan.
ZoomSettingsScope
Menentukan apakah perubahan zoom tetap ada untuk asal halaman, atau hanya diterapkan di tab ini; default ke per-origin
saat dalam mode automatic
, dan per-tab
jika tidak.
Enum
"per-origin"
Perubahan zoom akan tetap ada di asal halaman yang di-zoom, yaitu, semua tab lain yang dibuka ke asal yang sama tersebut juga akan diperbesar/diperkecil. Selain itu, perubahan zoom per-origin
disimpan dengan asalnya, yang berarti saat membuka halaman lain dalam asal yang sama, semua perubahan zoom akan diperbesar 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
direset di navigasi; menavigasi tab akan selalu memuat halaman dengan faktor zoom per-origin
.
Properti
MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND
Jumlah maksimum captureVisibleTab
dapat dipanggil per detik. captureVisibleTab
mahal dan tidak boleh dipanggil terlalu sering.
Nilai
2
TAB_ID_NONE
ID yang menunjukkan tidak adanya tab browser.
Nilai
-1
TAB_INDEX_NONE
Indeks yang mewakili tidak adanya indeks tab dalam tab_strip.
Nilai
-1
Metode
captureVisibleTab()
chrome.tabs.captureVisibleTab(
windowId?: number,
options?: ImageDetails,
callback?: function,
)
Menangkap 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 menangkap situs sensitif yang dibatasi, termasuk halaman chrome:-schema, ekstensi lain halaman, dan data: URL. Situs sensitif ini hanya dapat ditangkap dengan izin activeTab. URL file hanya dapat diambil jika ekstensi telah diberi akses file.
Parameter
-
windowId
angka opsional
Jendela target. Setelan defaultnya adalah jendela saat ini.
-
opsi
ImageDetails opsional
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(dataUrl: string) => void
-
dataUrl
string
URL data yang mengenkode gambar area yang terlihat dari tab yang diambil. Mungkin ditetapkan ke 'src' dari elemen
img
HTML untuk ditampilkan.
-
Hasil
-
Promise<string>
Chrome 88 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
connect()
chrome.tabs.connect(
tabId: number,
connectInfo?: object,
)
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 Pesan Skrip Konten.
Parameter
-
tabId
angka
-
connectInfo
objek opsional
-
documentId
string opsional
Chrome 106 dan yang lebih baruBuka port ke dokumen tertentu yang diidentifikasi oleh
documentId
, bukan semua frame di tab. -
frameId
angka opsional
Buka 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 yang ditentukan. Peristiwa
runtime.Port
port diaktifkan jika tab ditutup atau tidak ada.
create()
chrome.tabs.create(
createProperties: object,
callback?: function,
)
Membuat tab baru.
Parameter
-
createProperties
objek
-
aktif
boolean opsional
Apakah tab akan menjadi tab aktif di jendela. Tidak memengaruhi apakah jendela difokuskan (lihat
windows.update
). Default-nya adalahtrue
. -
indeks
angka opsional
Posisi yang harus diambil tab di jendela. Nilai yang diberikan dibulatkan ke antara nol dan jumlah tab di jendela.
-
openerTabId
angka 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 active.
Apakah tab akan menjadi tab yang dipilih di jendela. Default-nya adalah
true
-
url
string opsional
URL yang pertama kali dibuka. 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. Setelan default-nya adalah Halaman Tab Baru.
-
windowId
angka opsional
Jendela tempat membuat tab baru. Setelan defaultnya adalah jendela saat ini.
-
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(tab: Tab) => void
-
tab
Tab yang dibuat.
-
Hasil
-
Promise<Tab>
Chrome 88 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
detectLanguage()
chrome.tabs.detectLanguage(
tabId?: number,
callback?: function,
)
Mendeteksi bahasa utama konten dalam tab.
Parameter
-
tabId
angka opsional
Setelan default-nya adalah tab aktif di jendela saat ini.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(language: string) => void
-
language
string
Kode bahasa ISO seperti
en
ataufr
. Untuk 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 Aksara Sederhana yang menampilkanzh-CN
. Untuk bahasa yang tidak diketahui/tidak ditentukan,und
akan ditampilkan.
-
Hasil
-
Promise<string>
Chrome 88 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
discard()
chrome.tabs.discard(
tabId?: number,
callback?: function,
)
Membuang tab dari memori. Tab yang dihapus masih terlihat di tab setrip dan dimuat ulang saat diaktifkan.
Parameter
-
tabId
angka opsional
ID tab yang akan dihapus. Jika ditentukan, tab akan dihapus kecuali jika aktif atau sudah dihapus. Jika dihilangkan, browser akan menghapus tab yang paling tidak penting. Tindakan ini dapat gagal jika tidak ada tab yang dapat dihapus.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(tab?: Tab) => void
-
tab
Tab opsional
Tab yang dihapus, jika berhasil dihapus; {i>undefined<i} jika sebaliknya.
-
Hasil
-
Promise<Tab | tidak terdefinisi>
Chrome 88 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
duplicate()
chrome.tabs.duplicate(
tabId: number,
callback?: function,
)
Menduplikasi tab.
Parameter
-
tabId
angka
ID tab yang akan diduplikasi.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(tab?: Tab) => void
Hasil
-
Promise<Tab | tidak terdefinisi>
Chrome 88 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
executeScript()
chrome.tabs.executeScript(
tabId?: number,
details: InjectDetails,
callback?: function,
)
Diganti dengan scripting.executeScript
di Manifes V3.
Memasukkan kode JavaScript ke halaman. Untuk detailnya, lihat bagian injeksi terprogram pada dokumen skrip konten.
Parameter
-
tabId
angka opsional
ID tab tempat skrip akan dijalankan; default ke tab aktif dari jendela yang aktif.
-
detail
Detail skrip yang akan dijalankan. Kode atau properti file harus ditetapkan, tetapi keduanya tidak boleh ditetapkan bersamaan.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(result?: any[]) => void
-
hasil
setiap[] opsional
Hasil skrip di setiap frame yang dimasukkan.
-
Hasil
-
Promise<any[] | tidak terdefinisi>
Chrome 88 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
get()
chrome.tabs.get(
tabId: number,
callback?: function,
)
Mengambil detail tentang tab yang ditentukan.
Parameter
-
tabId
angka
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(tab: Tab) => void
-
tab
-
Hasil
-
Promise<Tab>
Chrome 88 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
getAllInWindow()
chrome.tabs.getAllInWindow(
windowId?: number,
callback?: function,
)
Gunakan tabs.query
{windowId: windowId}
.
Mendapatkan detail tentang semua tab di jendela yang ditentukan.
Parameter
-
windowId
angka opsional
Setelan defaultnya adalah jendela saat ini.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(tabs: Tab[]) => void
-
tab
Tab[]
-
Hasil
-
Promise<Tab[]>
Chrome 88 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
getCurrent()
chrome.tabs.getCurrent(
callback?: function,
)
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 | tidak terdefinisi>
Chrome 88 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
getSelected()
chrome.tabs.getSelected(
windowId?: number,
callback?: function,
)
Gunakan tabs.query
{active: true}
.
Mendapatkan tab yang dipilih di jendela yang ditentukan.
Parameter
-
windowId
angka opsional
Setelan defaultnya adalah jendela saat ini.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(tab: Tab) => void
-
tab
-
Hasil
-
Promise<Tab>
Chrome 88 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
getZoom()
chrome.tabs.getZoom(
tabId?: number,
callback?: function,
)
Mendapatkan faktor zoom saat ini dari tab yang ditentukan.
Parameter
-
tabId
angka opsional
ID tab untuk mendapatkan faktor zoom saat ini; default ke tab aktif dari jendela yang aktif.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(zoomFactor: number) => void
-
zoomFactor
angka
Faktor zoom tab saat ini.
-
Hasil
-
Promise<number>
Chrome 88 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
getZoomSettings()
chrome.tabs.getZoomSettings(
tabId?: number,
callback?: function,
)
Mendapatkan setelan zoom saat ini dari tab yang ditentukan.
Parameter
-
tabId
angka opsional
ID tab untuk mendapatkan setelan zoom saat ini; default ke tab aktif dari jendela yang aktif.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(zoomSettings: ZoomSettings) => void
-
zoomSettings
Setelan zoom tab saat ini.
-
Hasil
-
Promise<ZoomSettings>
Chrome 88 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
goBack()
chrome.tabs.goBack(
tabId?: number,
callback?: function,
)
Kembali ke halaman sebelumnya, jika tersedia.
Parameter
-
tabId
angka opsional
ID tab untuk kembali; default ke tab yang dipilih pada jendela saat ini.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:() => void
Hasil
-
Janji<void>
Chrome 88 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
goForward()
chrome.tabs.goForward(
tabId?: number,
callback?: function,
)
Maju ke halaman berikutnya, jika tersedia.
Parameter
-
tabId
angka opsional
ID tab untuk menavigasi maju; default ke tab yang dipilih pada jendela saat ini.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:() => void
Hasil
-
Janji<void>
Chrome 88 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
group()
chrome.tabs.group(
options: object,
callback?: function,
)
Menambahkan satu atau beberapa tab ke grup yang ditentukan, atau jika tidak ada grup yang ditentukan, akan menambahkan tab tertentu ke grup yang baru dibuat.
Parameter
-
opsi
objek
-
createProperties
objek opsional
Konfigurasi untuk membuat grup. Tidak dapat digunakan jika groupId sudah ditentukan.
-
windowId
angka opsional
Jendela grup baru. Setelan defaultnya adalah jendela saat ini.
-
-
groupId
angka opsional
ID grup yang akan ditambahi tab. Jika tidak ditentukan, grup baru akan dibuat.
-
tabIds
angka | [angka, ...angka[]]
ID tab atau daftar ID tab yang akan ditambahkan ke grup yang ditentukan.
-
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(groupId: number) => void
-
groupId
angka
ID grup tempat tab ditambahkan.
-
Hasil
-
Promise<number>
Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
highlight()
chrome.tabs.highlight(
highlightInfo: object,
callback?: function,
)
Menyoroti tab tertentu dan berfokus pada tab pertama grup. Tidak akan melakukan apa pun jika tab yang ditentukan sedang aktif.
Parameter
-
highlightInfo
objek
-
tab
angka | angka[]
Satu atau beberapa indeks tab yang akan disorot.
-
windowId
angka opsional
Jendela yang berisi tab.
-
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(window: Window) => void
-
jendela
Berisi detail tentang jendela yang tabnya disorot.
-
Hasil
-
Promise<windows.Window>
Chrome 88 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
insertCSS()
chrome.tabs.insertCSS(
tabId?: number,
details: InjectDetails,
callback?: function,
)
Diganti dengan scripting.insertCSS
di Manifes V3.
Memasukkan CSS ke dalam halaman. Gaya yang disisipkan dengan metode ini dapat dihapus dengan scripting.removeCSS
. Untuk detailnya, lihat bagian injeksi terprogram pada dokumen skrip konten.
Parameter
-
tabId
angka opsional
ID tab tempat memasukkan CSS; default ke tab aktif dari jendela yang aktif.
-
detail
Detail teks CSS yang akan disisipkan. Kode atau properti file harus ditetapkan, tetapi keduanya tidak boleh ditetapkan bersamaan.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:() => void
Hasil
-
Janji<void>
Chrome 88 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
move()
chrome.tabs.move(
tabIds: number | number[],
moveProperties: object,
callback?: function,
)
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
angka | angka[]
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
angka opsional
Setelan defaultnya adalah jendela tempat tab saat ini berada.
-
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(tabs: Tab | Tab[]) => void
Hasil
-
Chrome 88 dan yang lebih baru
Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
query()
chrome.tabs.query(
queryInfo: object,
callback?: function,
)
Mendapatkan semua tab yang memiliki properti yang ditentukan, atau semua tab jika tidak ada properti yang ditentukan.
Parameter
-
queryInfo
objek
-
aktif
boolean opsional
Apakah tab aktif di jendelanya atau tidak.
-
audible
boolean opsional
Chrome 45 dan yang lebih baruApakah tab dapat didengar atau tidak.
-
autoDiscardable
boolean opsional
Chrome 54 dan yang lebih baruApakah tab dapat dihapus secara otomatis oleh browser saat resource rendah.
-
currentWindow
boolean opsional
Apakah tab berada di jendela saat ini.
-
dihapus
boolean opsional
Chrome 54 dan yang lebih baruApakah tab dihapus. Tab yang dihapus adalah tab yang kontennya telah dihapus muatannya dari memori, tetapi masih terlihat di tab setrip. Kontennya dimuat ulang saat berikutnya diaktifkan.
-
groupId
angka opsional
Chrome 88 dan yang lebih baruID grup tempat tab berada, atau
tabGroups.TAB_GROUP_ID_NONE
untuk tab yang tidak dikelompokkan. -
disorot
boolean opsional
Apakah tab disorot.
-
indeks
angka opsional
Posisi tab dalam jendelanya.
-
lastFocusedWindow
boolean opsional
Apakah tab berada di jendela yang terakhir difokuskan.
-
dibisukan
boolean opsional
Chrome 45 dan yang lebih baruApakah tab dibisukan atau tidak.
-
dipasang pin
boolean opsional
Apakah tab disematkan.
-
status
TabStatus opsional
Status pemuatan tab.
-
judul
string opsional
Cocokkan judul halaman dengan pola. Properti ini akan diabaikan jika ekstensi tidak memiliki izin
"tabs"
. -
url
string | string[] opsional
Mencocokkan tab dengan satu atau beberapa pola URL. ID fragmen tidak cocok. Properti ini akan diabaikan jika ekstensi tidak memiliki izin
"tabs"
. -
windowId
angka 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 ini:(result: Tab[]) => void
-
hasil
Tab[]
-
Hasil
-
Promise<Tab[]>
Chrome 88 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
reload()
chrome.tabs.reload(
tabId?: number,
reloadProperties?: object,
callback?: function,
)
Muat ulang tab.
Parameter
-
tabId
angka opsional
ID tab yang akan dimuat ulang; default ke tab yang dipilih pada jendela saat ini.
-
reloadProperties
objek opsional
-
bypassCache
boolean opsional
Apakah akan mengabaikan caching lokal. Default-nya adalah
false
.
-
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:() => void
Hasil
-
Janji<void>
Chrome 88 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
remove()
chrome.tabs.remove(
tabIds: number | number[],
callback?: function,
)
Menutup satu atau beberapa tab.
Parameter
-
tabIds
angka | angka[]
ID tab atau daftar ID tab yang akan ditutup.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:() => void
Hasil
-
Janji<void>
Chrome 88 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
removeCSS()
chrome.tabs.removeCSS(
tabId?: number,
details: DeleteInjectionDetails,
callback?: function,
)
Diganti dengan scripting.removeCSS
di Manifes V3.
Menghapus dari CSS halaman yang sebelumnya dimasukkan oleh panggilan ke scripting.insertCSS
.
Parameter
-
tabId
angka opsional
ID tab tempat CSS akan dihapus; default ke tab aktif dari jendela yang aktif.
-
detail
Detail teks CSS yang akan dihapus. Kode atau properti file harus ditetapkan, tetapi keduanya tidak boleh ditetapkan bersamaan.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:() => void
Hasil
-
Janji<void>
Chrome 88 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
sendMessage()
chrome.tabs.sendMessage(
tabId: number,
message: any,
options?: object,
callback?: function,
)
Mengirim satu pesan ke skrip konten di tab yang ditentukan, dengan callback opsional untuk 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 JSON-ifiable.
-
opsi
objek opsional
-
callback
fungsi opsional
Chrome 99 dan yang lebih baruParameter
callback
terlihat seperti ini:(response: any) => void
-
respons
apa pun
Objek respons JSON yang dikirim oleh pengendali pesan. Jika terjadi error saat terhubung ke tab yang ditentukan, callback akan dipanggil tanpa argumen dan
runtime.lastError
disetel ke pesan error.
-
Hasil
-
Janjikan<any>
Chrome 99 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
sendRequest()
chrome.tabs.sendRequest(
tabId: number,
request: any,
callback?: function,
)
Harap 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 dan yang lebih baruParameter
callback
terlihat seperti ini:(response: any) => void
-
respons
apa pun
Objek respons JSON yang dikirim oleh pengendali permintaan. Jika terjadi error saat terhubung ke tab yang ditentukan, callback akan dipanggil tanpa argumen dan
runtime.lastError
disetel ke pesan error.
-
Hasil
-
Janjikan<any>
Chrome 99 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
setZoom()
chrome.tabs.setZoom(
tabId?: number,
zoomFactor: number,
callback?: function,
)
Memperbesar tab tertentu.
Parameter
-
tabId
angka opsional
ID tab yang akan di-zoom; default ke tab aktif dari jendela yang aktif.
-
zoomFactor
angka
Faktor zoom baru. Nilai
0
menetapkan 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 ini:() => void
Hasil
-
Janji<void>
Chrome 88 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
setZoomSettings()
chrome.tabs.setZoomSettings(
tabId?: number,
zoomSettings: ZoomSettings,
callback?: function,
)
Menyetel setelan zoom untuk tab yang ditentukan, yang menentukan cara penanganan perubahan zoom. Setelan ini direset ke default saat menjelajahi tab.
Parameter
-
tabId
angka opsional
ID tab untuk mengubah setelan zoom; default ke tab aktif dari jendela yang aktif.
-
zoomSettings
Menentukan cara penanganan perubahan zoom dan cakupannya.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:() => void
Hasil
-
Janji<void>
Chrome 88 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
ungroup()
chrome.tabs.ungroup(
tabIds: number | [number, ...number[]],
callback?: function,
)
Menghapus satu atau beberapa tab dari grupnya masing-masing. Jika ada grup yang kosong, grup tersebut akan dihapus.
Parameter
-
tabIds
angka | [angka, ...angka[]]
ID tab atau daftar ID tab yang akan dihapus dari grupnya masing-masing.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:() => void
Hasil
-
Janji<void>
Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
update()
chrome.tabs.update(
tabId?: number,
updateProperties: object,
callback?: function,
)
Mengubah properti tab. Properti yang tidak ditetapkan di updateProperties
tidak diubah.
Parameter
-
tabId
angka opsional
Setelan default-nya adalah tab yang dipilih dari jendela saat ini.
-
updateProperties
objek
-
aktif
boolean opsional
Apakah tab seharusnya aktif. Tidak memengaruhi apakah jendela difokuskan (lihat
windows.update
). -
autoDiscardable
boolean opsional
Chrome 54 dan yang lebih baruApakah tab harus dihapus otomatis oleh browser saat resource rendah.
-
disorot
boolean opsional
Menambahkan atau menghapus tab dari pilihan saat ini.
-
dibisukan
boolean opsional
Chrome 45 dan yang lebih baruApakah tab seharusnya dibisukan.
-
openerTabId
angka 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 akan dipilih atau tidak.
-
url
string opsional
URL untuk membuka tab. URL JavaScript tidak didukung; gunakan
scripting.executeScript
sebagai gantinya.
-
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(tab?: Tab) => void
Hasil
-
Promise<Tab | tidak terdefinisi>
Chrome 88 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu 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 mendapatkan notifikasi saat URL ditetapkan.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti ini:(activeInfo: object) => void
-
activeInfo
objek
-
tabId
angka
ID tab yang menjadi aktif.
-
windowId
angka
ID jendela tempat tab aktif diubah di dalamnya.
-
-
onActiveChanged
chrome.tabs.onActiveChanged.addListener(
callback: function,
)
Harap 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 memproses peristiwa tabs.onUpdated
untuk mendapatkan notifikasi saat URL ditetapkan.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti ini:(tabId: number, selectInfo: object) => void
-
tabId
angka
-
selectInfo
objek
-
windowId
angka
ID jendela tempat tab yang dipilih diubah di dalamnya.
-
-
onAttached
chrome.tabs.onAttached.addListener(
callback: function,
)
Diaktifkan saat tab terpasang ke jendela; misalnya, karena dipindahkan antar jendela.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti ini:(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 keanggotaan grup tab dan URL tab mungkin tidak ditetapkan pada saat peristiwa ini diaktifkan, tetapi Anda dapat memproses peristiwa onUpdated untuk mendapatkan notifikasi 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 antar jendela.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti ini:(tabId: number, detachInfo: object) => void
-
tabId
angka
-
detachInfo
objek
-
oldPosition
angka
-
oldWindowId
angka
-
-
onHighlightChanged
chrome.tabs.onHighlightChanged.addListener(
callback: function,
)
Harap gunakan tabs.onHighlighted
.
Diaktifkan saat tab yang ditandai atau dipilih di jendela berubah.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti ini:(selectInfo: object) => void
-
selectInfo
objek
-
tabIds
angka[]
Semua tab yang disorot dalam jendela.
-
windowId
angka
Jendela yang tabnya berubah.
-
-
onHighlighted
chrome.tabs.onHighlighted.addListener(
callback: function,
)
Diaktifkan saat tab yang ditandai atau dipilih di jendela berubah.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti ini:(highlightInfo: object) => void
-
highlightInfo
objek
-
tabIds
angka[]
Semua tab yang disorot dalam jendela.
-
windowId
angka
Jendela yang tabnya berubah.
-
-
onMoved
chrome.tabs.onMoved.addListener(
callback: function,
)
Diaktifkan saat tab dipindahkan di dalam jendela. Hanya satu peristiwa pemindahan yang diaktifkan, yang menunjukkan tab yang langsung dipindahkan oleh pengguna. Peristiwa pemindahan tidak diaktifkan untuk tab lain yang harus bergerak 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 ini:(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 ini:(tabId: number, removeInfo: object) => void
-
tabId
angka
-
removeInfo
objek
-
isWindowClosing
boolean
True saat 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 ini:(addedTabId: number, removedTabId: number) => void
-
addedTabId
angka
-
removedTabId
angka
-
onSelectionChanged
chrome.tabs.onSelectionChanged.addListener(
callback: function,
)
Harap gunakan tabs.onActivated
.
Diaktifkan saat tab yang dipilih di jendela berubah.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti ini:(tabId: number, selectInfo: object) => void
-
tabId
angka
-
selectInfo
objek
-
windowId
angka
ID jendela tempat tab yang dipilih diubah di dalamnya.
-
-
onUpdated
chrome.tabs.onUpdated.addListener(
callback: function,
)
Diaktifkan saat tab diperbarui.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti ini:(tabId: number, changeInfo: object, tab: Tab) => void
-
tabId
angka
-
changeInfo
objek
-
audible
boolean opsional
Chrome 45 dan yang lebih baruStatus suara baru tab.
-
autoDiscardable
boolean opsional
Chrome 54 dan yang lebih baruStatus baru pada tab yang dapat dihapus otomatis.
-
dihapus
boolean opsional
Chrome 54 dan yang lebih baruStatus baru tab dihapus.
-
favIconUrl
string opsional
URL favicon baru tab.
-
groupId
angka opsional
Chrome 88 dan yang lebih baruGrup baru tab.
-
mutedInfo
MutedInfo opsional
Chrome 46 dan yang lebih baruStatus tab baru yang dibisukan dan alasan perubahannya.
-
dipasang pin
boolean opsional
Status tab yang disematkan baru.
-
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 diperbesar.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti ini:(ZoomChangeInfo: object) => void
-
ZoomChangeInfo
objek
-
newZoomFactor
angka
-
oldZoomFactor
angka
-
tabId
angka
-
zoomSettings
-
-