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.
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 memanggil- tabs.query()terhadap empat properti sensitif pada instance- tabs.Tab:- url,- pendingUrl,- title, dan- favIconUrl.- { "name": "My extension", ... "permissions": [ "tabs" ], ... }
- Izin host
- Izin host memungkinkan ekstensi membaca dan membuat kueri empat properti sensitif - tabs.Tabtab yang cocok. Pengguna juga dapat berinteraksi langsung dengan tab yang cocok menggunakan metode seperti- tabs.captureVisibleTab(),- scripting.executeScript(),- scripting.insertCSS(), dan- scripting.removeCSS().- { "name": "My extension", ... "host_permissions": [ "http://*/*", "https://*/*" ], ... }
- Izin "activeTab"
- activeTabmemberikan izin host sementara untuk tab saat ini sebagai respons terhadap pemanggilan pengguna. Tidak seperti izin host,- activeTabtidak memicu peringatan apa pun.- { "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
- 
    extensionIdstring opsional ID ekstensi yang mengubah status senyap. Tidak disetel jika ekstensi bukan alasan status dibisukan terakhir kali berubah. 
- 
    dibisukanboolean 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. 
- 
    alasanMutedInfoReason opsional Alasan tab dibisukan atau dibunyikan. Tidak disetel jika status bisu tab belum pernah diubah. 
MutedInfoReason
Peristiwa yang menyebabkan perubahan status senyap.
Enum
"user" 
 Tindakan input pengguna menetapkan status senyap.
"capture" 
 Perekaman tab dimulai, sehingga perubahan status ke mode senyap.
"extension" 
 Ekstensi, yang diidentifikasi oleh kolom extensionId, menetapkan status diredam.
Tab
Properti
- 
    aktifboolean Apakah tab aktif di jendelanya. Tidak berarti jendela difokuskan. 
- 
    audibleboolean 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. 
- 
    autoDiscardableboolean Chrome 54+Apakah tab dapat dibuang secara otomatis oleh browser saat resource rendah. 
- 
    dihapusboolean Chrome 54+Apakah tab dihapus. Tab yang dibuang adalah tab yang kontennya telah dikeluarkan dari memori, tetapi masih terlihat di panel tab. Kontennya akan dimuat ulang saat diaktifkan berikutnya. 
- 
    favIconUrlstring 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.
- 
    dibekukanboolean 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. 
- 
    groupIdangka Chrome 88+ID grup tempat tab berada. 
- 
    tingginomor opsional Tinggi tab dalam piksel. 
- 
    disorotboolean Apakah tab disorot. 
- 
    idnomor opsional ID tab. ID tab bersifat unik dalam sesi browser. Dalam beberapa keadaan, tab mungkin tidak diberi ID; misalnya, saat mengkueri tab asing menggunakan sessionsAPI, dalam hal ini ID sesi mungkin ada. ID tab juga dapat disetel kechrome.tabs.TAB_ID_NONEuntuk aplikasi dan jendela devtools.
- 
    samaranboolean Apakah tab berada di jendela samaran. 
- 
    indeksangka Indeks tab berbasis nol dalam jendelanya. 
- 
    lastAccessedangka Chrome 121+Terakhir kali tab menjadi aktif di jendelanya sebagai jumlah milidetik sejak epoch. 
- 
    mutedInfoMutedInfo opsional Chrome 46+Status senyap tab dan alasan perubahan status terakhir. 
- 
    openerTabIdnomor opsional ID tab yang membuka tab ini, jika ada. Properti ini hanya ada jika tab pembuka masih ada. 
- 
    pendingUrlstring 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 pinboolean Apakah tab disematkan. 
- 
    dipilihboolean Tidak digunakan lagiGunakan tabs.Tab.highlighted.Apakah tab dipilih. 
- 
    sessionIdstring opsional ID sesi yang digunakan untuk mengidentifikasi tab secara unik yang diperoleh dari API sessions.
- 
    statusTabStatus opsional Status pemuatan tab. 
- 
    judulstring opsional Judul tab. Properti ini hanya ada jika ekstensi memiliki izin "tabs"atau memiliki izin host untuk halaman.
- 
    urlstring 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.
- 
    lebarnomor opsional Lebar tab dalam piksel. 
- 
    windowIdangka 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
- 
    defaultZoomFactornomor opsional Chrome 43+Digunakan untuk menampilkan tingkat zoom default untuk tab saat ini dalam panggilan ke tabs.getZoomSettings. 
- 
    modeZoomSettingsMode opsional Menentukan cara perubahan zoom ditangani, yaitu entitas mana yang bertanggung jawab atas penskalaan halaman yang sebenarnya; defaultnya adalah automatic.
- 
    cakupanZoomSettingsScope opsional Menentukan apakah perubahan zoom tetap ada untuk origin halaman, atau hanya berlaku di tab ini; defaultnya adalah per-originsaat dalam modeautomatic, danper-tabjika tidak.
ZoomSettingsMode
Menentukan cara perubahan zoom ditangani, 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 upaya perubahan zoom 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,
): 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 biasanya 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
- 
    windowIdnomor opsional Jendela target. Default-nya adalah jendela saat ini. 
- 
    opsiImageDetails opsional 
Hasil
- 
            Promise<string> Chrome 88+
connect()
chrome.tabs.connect(
tabId: number,
connectInfo?: object,
): runtime.Port
Menghubungkan 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
- 
    tabIdangka 
- 
    connectInfoobjek opsional - 
    documentIdstring opsional Chrome 106+Membuka port ke dokumen tertentu yang diidentifikasi oleh documentId, bukan semua frame di tab.
- 
    frameIdnomor opsional Membuka port ke frame tertentu yang diidentifikasi oleh frameId, bukan semua frame di tab.
- 
    namastring 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.Portport diaktifkan jika tab ditutup atau tidak ada.
Parameter
- 
    createPropertiesobjek - 
    aktifboolean opsional Apakah tab harus menjadi tab aktif di jendela. Tidak memengaruhi apakah jendela difokuskan atau tidak (lihat windows.update). Defaultnya adalahtrue.
- 
    indeksnomor opsional Posisi tab yang harus diambil di jendela. Nilai yang diberikan dibatasi antara nol dan jumlah tab di jendela. 
- 
    openerTabIdnomor opsional ID tab yang membuka tab ini. Jika ditentukan, tab pembuka harus berada di jendela yang sama dengan tab yang baru dibuat. 
- 
    dipasang pinboolean opsional Apakah tab harus disematkan. Default-nya adalah false
- 
    dipilihboolean opsional Tidak digunakan lagiGunakan aktif. Apakah tab harus menjadi tab yang dipilih di jendela. Default-nya adalah true
- 
    urlstring 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. 
- 
    windowIdnomor opsional Jendela tempat tab baru akan dibuat. Default-nya adalah jendela saat ini. 
 
- 
    
Hasil
- 
            Promise<Tab> Chrome 88+
detectLanguage()
chrome.tabs.detectLanguage(
tabId?: number,
): Promise<string>
Mendeteksi bahasa utama konten di tab.
Parameter
- 
    tabIdnomor opsional Secara default, tab aktif jendela saat ini. 
Hasil
- 
            Promise<string> Chrome 88+
discard()
chrome.tabs.discard(
tabId?: number,
): Promise<Tab | undefined>
Menghapus tab dari memori. Tab yang dibuang masih terlihat di kolom tab dan dimuat ulang saat diaktifkan.
Parameter
- 
    tabIdnomor 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. 
Hasil
- 
            Promise<Tab | undefined> Chrome 88+
Parameter
- 
    tabIdangka ID tab yang akan diduplikasi. 
Hasil
- 
            Promise<Tab | undefined> Chrome 88+
Parameter
- 
    tabIdangka 
Hasil
- 
            Promise<Tab> Chrome 88+
getCurrent()
chrome.tabs.getCurrent(): 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).
Hasil
- 
            Promise<Tab | undefined> Chrome 88+
getZoom()
chrome.tabs.getZoom(
tabId?: number,
): Promise<number>
Mendapatkan faktor zoom saat ini dari tab yang ditentukan.
Parameter
- 
    tabIdnomor opsional ID tab untuk mendapatkan faktor zoom saat ini; defaultnya adalah tab aktif di jendela saat ini. 
Hasil
- 
            Promise<number> Chrome 88+
getZoomSettings()
chrome.tabs.getZoomSettings(
tabId?: number,
): Promise<ZoomSettings>
Mendapatkan setelan zoom saat ini dari tab yang ditentukan.
Parameter
- 
    tabIdnomor opsional ID tab untuk mendapatkan setelan zoom saat ini; defaultnya adalah tab aktif di jendela saat ini. 
Hasil
- 
            Promise<ZoomSettings> Chrome 88+
goBack()
chrome.tabs.goBack(
tabId?: number,
): Promise<void>
Kembali ke halaman sebelumnya, jika ada.
Parameter
- 
    tabIdnomor opsional ID tab untuk kembali; defaultnya adalah tab yang dipilih di jendela saat ini. 
Hasil
- 
            Promise<void> Chrome 88+
goForward()
chrome.tabs.goForward(
tabId?: number,
): Promise<void>
Maju ke halaman berikutnya, jika ada.
Parameter
- 
    tabIdnomor opsional ID tab untuk membuka tab berikutnya; secara default adalah tab yang dipilih di jendela saat ini. 
Hasil
- 
            Promise<void> Chrome 88+
group()
chrome.tabs.group(
options: object,
): 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
- 
    opsiobjek - 
    createPropertiesobjek opsional Konfigurasi untuk membuat grup. Tidak dapat digunakan jika groupId sudah ditentukan. - 
    windowIdnomor opsional Jendela grup baru. Default-nya adalah jendela saat ini. 
 
- 
    
- 
    groupIdnomor opsional ID grup tempat tab akan ditambahkan. Jika tidak ditentukan, grup baru akan dibuat. 
- 
    tabIdsnumber | [number, ...number[]] ID tab atau daftar ID tab yang akan ditambahkan ke grup tertentu. 
 
- 
    
Hasil
- 
            Promise<number> 
highlight()
chrome.tabs.highlight(
highlightInfo: object,
): Promise<windows.Window>
Menyoroti tab yang diberikan dan berfokus pada tab pertama dalam grup. Tidak akan melakukan apa pun jika tab yang ditentukan saat ini aktif.
Parameter
- 
    highlightInfoobjek - 
    tabnumber | number[] Satu atau beberapa indeks tab yang akan ditandai. 
- 
    windowIdnomor opsional Jendela yang berisi tab. 
 
- 
    
Hasil
- 
            Promise<windows.Window> Chrome 88+
move()
chrome.tabs.move(
tabIds: number | number[],
moveProperties: object,
): 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
- 
    tabIdsnumber | number[] ID tab atau daftar ID tab yang akan dipindahkan. 
- 
    movePropertiesobjek - 
    indeksangka Posisi untuk memindahkan jendela. Gunakan -1untuk menempatkan tab di akhir jendela.
- 
    windowIdnomor opsional Defaultnya adalah jendela tempat tab berada saat ini. 
 
- 
    
query()
chrome.tabs.query(
queryInfo: object,
): Promise<Tab[]>
Mendapatkan semua tab yang memiliki properti tertentu, atau semua tab jika tidak ada properti yang ditentukan.
Parameter
- 
    queryInfoobjek - 
    aktifboolean opsional Apakah tab aktif di jendelanya. 
- 
    audibleboolean opsional Chrome 45+Apakah tab dapat didengar. 
- 
    autoDiscardableboolean opsional Chrome 54+Apakah tab dapat dibuang secara otomatis oleh browser saat resource rendah. 
- 
    currentWindowboolean opsional Apakah tab berada di jendela saat ini. 
- 
    dihapusboolean opsional 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. 
- 
    dibekukanboolean 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. 
- 
    groupIdnomor opsional Chrome 88+ID grup tempat tab berada, atau tabGroups.TAB_GROUP_ID_NONEuntuk tab yang tidak dikelompokkan.
- 
    disorotboolean opsional Apakah tab ditandai. 
- 
    indeksnomor opsional Posisi tab dalam jendelanya. 
- 
    lastFocusedWindowboolean opsional Apakah tab berada di jendela yang terakhir difokuskan. 
- 
    dibisukanboolean opsional Chrome 45+Apakah tab dibisukan. 
- 
    dipasang pinboolean opsional Apakah tab disematkan atau tidak. 
- 
    splitViewIdnomor opsional Chrome 140+ID Tampilan Terpisah tempat tab berada, atau tabs.SPLIT_VIEW_ID_NONEuntuk tab yang tidak berada dalam Tampilan Terpisah.
- 
    statusTabStatus opsional Status pemuatan tab. 
- 
    judulstring opsional Mencocokkan judul halaman dengan pola. Properti ini diabaikan jika ekstensi tidak memiliki izin "tabs"atau izin host untuk halaman.
- 
    urlstring | 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.
- 
    windowIdnomor opsional ID jendela induk, atau windows.WINDOW_ID_CURRENTuntuk jendela saat ini.
- 
    windowTypeWindowType opsional Jenis jendela tempat tab berada. 
 
- 
    
Hasil
- 
            Promise<Tab[]> Chrome 88+
reload()
chrome.tabs.reload(
tabId?: number,
reloadProperties?: object,
): Promise<void>
Memuat ulang tab.
Parameter
- 
    tabIdnomor opsional ID tab yang akan dimuat ulang; secara default adalah tab yang dipilih di jendela saat ini. 
- 
    reloadPropertiesobjek opsional - 
    bypassCacheboolean opsional Apakah akan melewati caching lokal. Default-nya adalah false.
 
- 
    
Hasil
- 
            Promise<void> Chrome 88+
remove()
chrome.tabs.remove(
tabIds: number | number[],
): Promise<void>
Menutup satu atau beberapa tab.
Parameter
- 
    tabIdsnumber | number[] ID tab atau daftar ID tab yang akan ditutup. 
Hasil
- 
            Promise<void> Chrome 88+
sendMessage()
chrome.tabs.sendMessage(
tabId: number,
message: any,
options?: object,
): 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
- 
    tabIdangka 
- 
    pesanapa pun Pesan yang akan dikirim. Pesan ini harus berupa objek yang dapat di-JSON-kan. 
- 
    opsiobjek opsional 
Hasil
- 
            Promise<any> Chrome 99+
setZoom()
chrome.tabs.setZoom(
tabId?: number,
zoomFactor: number,
): Promise<void>
Melakukan zoom pada tab tertentu.
Parameter
- 
    tabIdnomor opsional ID tab yang akan di-zoom; secara default adalah tab aktif di jendela saat ini. 
- 
    zoomFactorangka Faktor zoom baru. Nilai 0akan menyetel tab ke faktor zoom default saat ini. Nilai yang lebih besar dari0menentukan faktor zoom (mungkin non-default) untuk tab.
Hasil
- 
            Promise<void> Chrome 88+
setZoomSettings()
chrome.tabs.setZoomSettings(
tabId?: number,
zoomSettings: ZoomSettings,
): Promise<void>
Menetapkan setelan zoom untuk tab tertentu, yang menentukan cara perubahan zoom ditangani. Setelan ini akan direset ke default saat membuka tab.
Parameter
- 
    tabIdnomor opsional ID tab untuk mengubah setelan zoom; defaultnya adalah tab aktif di jendela saat ini. 
- 
    zoomSettingsMenentukan cara penanganan perubahan zoom dan pada cakupan apa. 
Hasil
- 
            Promise<void> Chrome 88+
ungroup()
chrome.tabs.ungroup(
tabIds: number | [number, ...number[]],
): Promise<void>
Menghapus satu atau beberapa tab dari grupnya masing-masing. Jika ada grup yang kosong, grup tersebut akan dihapus.
Parameter
- 
    tabIdsnumber | [number, ...number[]] ID tab atau daftar ID tab yang akan dihapus dari grup masing-masing. 
Hasil
- 
            Promise<void> 
update()
chrome.tabs.update(
tabId?: number,
updateProperties: object,
): Promise<Tab | undefined>
Mengubah properti tab. Properti yang tidak ditentukan di updateProperties tidak diubah.
Parameter
- 
    tabIdnomor opsional Secara default, tab yang dipilih adalah tab jendela saat ini. 
- 
    updatePropertiesobjek - 
    aktifboolean opsional Apakah tab harus aktif. Tidak memengaruhi apakah jendela difokuskan (lihat windows.update).
- 
    autoDiscardableboolean opsional Chrome 54+Apakah tab harus dibuang secara otomatis oleh browser saat resource rendah. 
- 
    disorotboolean opsional Menambahkan atau menghapus tab dari pilihan saat ini. 
- 
    dibisukanboolean opsional Chrome 45+Apakah tab harus dibisukan. 
- 
    openerTabIdnomor opsional ID tab yang membuka tab ini. Jika ditentukan, tab pembuka harus berada di jendela yang sama dengan tab ini. 
- 
    dipasang pinboolean opsional Apakah tab harus disematkan. 
- 
    dipilihboolean opsional Tidak digunakan lagiGunakan yang ditandai. Apakah tab harus dipilih. 
- 
    urlstring opsional URL yang akan dituju tab. URL JavaScript tidak didukung; gunakan scripting.executeScript.
 
- 
    
Hasil
- 
            Promise<Tab | undefined> Chrome 88+
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
- 
    callbackfungsi Parameter callbackterlihat seperti:(activeInfo: object) => void - 
    activeInfoobjek - 
    tabIdangka ID tab yang telah menjadi aktif. 
- 
    windowIdangka ID jendela tempat tab aktif berubah. 
 
- 
    
 
- 
    
onAttached
chrome.tabs.onAttached.addListener(
callback: function,
)
Diaktifkan saat tab dilampirkan ke jendela; misalnya, karena dipindahkan antar-jendela.
Parameter
- 
    callbackfungsi Parameter callbackterlihat seperti:(tabId: number, attachInfo: object) => void - 
    tabIdangka 
- 
    attachInfoobjek - 
    newPositionangka 
- 
    newWindowIdangka 
 
- 
    
 
- 
    
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
- 
    callbackfungsi Parameter callbackterlihat seperti:(tabId: number, detachInfo: object) => void - 
    tabIdangka 
- 
    detachInfoobjek - 
    oldPositionangka 
- 
    oldWindowIdangka 
 
- 
    
 
- 
    
onHighlighted
chrome.tabs.onHighlighted.addListener(
callback: function,
)
Diaktifkan saat tab yang disorot atau dipilih di jendela berubah.
Parameter
- 
    callbackfungsi Parameter callbackterlihat seperti:(highlightInfo: object) => void - 
    highlightInfoobjek - 
    tabIdsnumber[] Semua tab yang disorot di jendela. 
- 
    windowIdangka 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
- 
    callbackfungsi Parameter callbackterlihat seperti:(tabId: number, moveInfo: object) => void - 
    tabIdangka 
- 
    moveInfoobjek - 
    fromIndexangka 
- 
    toIndexangka 
- 
    windowIdangka 
 
- 
    
 
- 
    
onRemoved
chrome.tabs.onRemoved.addListener(
callback: function,
)
Diaktifkan saat tab ditutup.
Parameter
- 
    callbackfungsi Parameter callbackterlihat seperti:(tabId: number, removeInfo: object) => void - 
    tabIdangka 
- 
    removeInfoobjek - 
    isWindowClosingboolean Benar jika tab ditutup karena jendela induknya ditutup. 
- 
    windowIdangka Jendela yang tab-nya ditutup. 
 
- 
    
 
- 
    
onReplaced
chrome.tabs.onReplaced.addListener(
callback: function,
)
Diaktifkan saat tab diganti dengan tab lain karena pra-rendering atau instan.
Parameter
- 
    callbackfungsi Parameter callbackterlihat seperti:(addedTabId: number, removedTabId: number) => void - 
    addedTabIdangka 
- 
    removedTabIdangka 
 
- 
    
onUpdated
chrome.tabs.onUpdated.addListener(
callback: function,
)
Diaktifkan saat tab diperbarui.
Parameter
- 
    callbackfungsi Parameter callbackterlihat seperti:(tabId: number, changeInfo: object, tab: Tab) => void - 
    tabIdangka 
- 
    changeInfoobjek - 
    audibleboolean opsional Chrome 45+Status terdengar baru tab. 
- 
    autoDiscardableboolean opsional Chrome 54+Status dapat dihapus otomatis baru tab. 
- 
    dihapusboolean opsional Chrome 54+Status baru tab yang dihapus. 
- 
    favIconUrlstring opsional URL favicon baru tab. 
- 
    dibekukanboolean opsional Chrome 132+Status baru tab yang dibekukan. 
- 
    groupIdnomor opsional Chrome 88+Grup baru tab. 
- 
    mutedInfoMutedInfo opsional Chrome 46+Status baru tab yang disenyapkan dan alasan perubahan. 
- 
    dipasang pinboolean opsional Status baru tab yang disematkan. 
- 
    splitViewIdnomor opsional Chrome 140+Tampilan Terpisah baru tab. 
- 
    statusTabStatus opsional Status pemuatan tab. 
- 
    judulstring opsional Chrome 48+Judul baru tab. 
- 
    urlstring opsional URL tab jika telah berubah. 
 
- 
    
- 
    tab
 
- 
    
onZoomChange
chrome.tabs.onZoomChange.addListener(
callback: function,
)
Diaktifkan saat tab dizoom.
Parameter
- 
    callbackfungsi Parameter callbackterlihat seperti:(ZoomChangeInfo: object) => void - 
    ZoomChangeInfoobjek - 
    newZoomFactorangka 
- 
    oldZoomFactorangka 
- 
    tabIdangka 
- 
    zoomSettings
 
- 
    
 
-