Deskripsi
Gunakan chrome.windows API untuk berinteraksi dengan jendela browser. Anda dapat menggunakan API ini untuk membuat, mengubah, dan menyusun ulang jendela di browser.
Izin
Jika diminta, windows.Window berisi array objek tabs.Tab. Anda harus
mendeklarasikan izin "tabs" dalam manifest jika Anda memerlukan akses ke properti url,
pendingUrl, title, atau favIconUrl dari tabs.Tab. Contoh:
{
  "name": "My extension",
  ...
  "permissions": ["tabs"],
  ...
}
Konsep dan penggunaan
Jendela saat ini
Banyak fungsi dalam sistem ekstensi menggunakan argumen windowId opsional, yang secara default adalah
jendela saat ini.
Jendela saat ini adalah jendela yang berisi kode yang sedang dieksekusi. Penting untuk menyadari bahwa hal ini dapat berbeda dari jendela teratas atau jendela yang difokuskan.
Misalnya, ekstensi membuat beberapa tab atau jendela dari satu file HTML, dan file HTML tersebut berisi panggilan ke tabs.query(). Jendela saat ini adalah jendela yang berisi
halaman yang melakukan panggilan, apa pun jendela teratasnya.
Dalam kasus service worker, nilai jendela saat ini akan kembali ke jendela aktif terakhir. Dalam beberapa situasi, mungkin tidak ada jendela saat ini untuk halaman latar belakang.
Contoh
Untuk mencoba API ini, instal contoh API windows dari repositori chrome-extension-samples.
 
  Jenis
CreateType
Menentukan jenis jendela browser yang akan dibuat. 'panel' sudah tidak digunakan lagi dan hanya tersedia untuk ekstensi yang sudah ada dalam daftar yang diizinkan di ChromeOS.
Enum
"normal" 
 Menentukan jendela sebagai jendela standar.
"popup" 
 Menentukan jendela sebagai jendela pop-up.
"panel" 
 Menentukan jendela sebagai panel.
QueryOptions
Properti
- 
    mengisiboolean opsional Jika benar, objek windows.Windowmemiliki propertitabsyang berisi daftar objektabs.Tab. ObjekTabhanya berisi propertiurl,pendingUrl,title, danfavIconUrljika file manifes ekstensi menyertakan izin"tabs".
- 
    windowTypesWindowType[] opsional Jika disetel, windows.Windowyang ditampilkan akan difilter berdasarkan jenisnya. Jika tidak disetel, filter default akan ditetapkan ke['normal', 'popup'].
Window
Properti
- 
    alwaysOnTopboolean Apakah jendela disetel agar selalu berada di atas. 
- 
    fokusboolean Apakah jendela saat ini adalah jendela yang difokuskan. 
- 
    tingginomor opsional Tinggi jendela, termasuk frame, dalam piksel. Dalam beberapa situasi, jendela mungkin tidak diberi properti height; misalnya, saat mengkueri jendela tertutup darisessionsAPI.
- 
    idnomor opsional ID jendela. ID jendela bersifat unik dalam sesi browser. Dalam beberapa keadaan, jendela mungkin tidak diberi properti ID; misalnya, saat mengkueri jendela menggunakansessionsAPI, dalam hal ini ID sesi mungkin ada.
- 
    samaranboolean Apakah jendela dalam mode samaran. 
- 
    kirinomor opsional Offset jendela dari tepi kiri layar dalam piksel. Dalam beberapa situasi, jendela mungkin tidak diberi properti left; misalnya, saat mengkueri jendela tertutup darisessionsAPI.
- 
    sessionIdstring opsional ID sesi yang digunakan untuk mengidentifikasi jendela secara unik, yang diperoleh dari API sessions.
- 
    dengan status tersembunyi akhirWindowState opsional Status jendela browser ini. 
- 
    tabTab[] opsional Array objek tabs.Tabyang mewakili tab saat ini di jendela.
- 
    atasnomor opsional Offset jendela dari tepi atas layar dalam piksel. Dalam beberapa situasi, jendela mungkin tidak diberi properti top; misalnya, saat mengkueri jendela tertutup darisessionsAPI.
- 
    jenisWindowType opsional Jenis jendela browser ini. 
- 
    lebarnomor opsional Lebar jendela, termasuk frame, dalam piksel. Dalam beberapa situasi, jendela mungkin tidak diberi properti width; misalnya, saat mengkueri jendela tertutup darisessionsAPI.
WindowState
Status jendela browser ini. Dalam beberapa situasi, jendela mungkin tidak diberi properti state; misalnya, saat mengkueri jendela tertutup dari sessions API.
Enum
"normal" 
 Status jendela normal (tidak diminimalkan, dimaksimalkan, atau layar penuh).
"minimized" 
 Status jendela yang diperkecil.
"dimaksimalkan" 
 Status jendela yang dimaksimalkan.
"fullscreen" 
 Status jendela layar penuh.
"locked-fullscreen" 
 Status jendela layar penuh terkunci. Status layar penuh ini tidak dapat dihentikan oleh tindakan pengguna dan hanya tersedia untuk ekstensi yang diizinkan di Chrome OS.
WindowType
Jenis jendela browser ini. Dalam beberapa situasi, jendela mungkin tidak diberi properti type; misalnya, saat mengkueri jendela yang tertutup dari sessions API.
Enum
"normal" 
 Jendela browser normal.
"popup" 
 Pop-up browser.
"panel" 
 Tidak digunakan lagi di API ini. Jendela gaya panel Aplikasi Chrome. Ekstensi hanya dapat melihat jendela panelnya sendiri.
"app" 
 Tidak digunakan lagi di API ini. Jendela Aplikasi Chrome. Ekstensi hanya dapat melihat jendela aplikasinya sendiri.
"devtools" 
 Jendela Developer Tools.
Properti
WINDOW_ID_CURRENT
Nilai windowId yang merepresentasikan jendela saat ini.
Nilai
-2 
 
WINDOW_ID_NONE
Nilai windowId yang menunjukkan tidak adanya jendela browser Chrome.
Nilai
-1 
 
Metode
create()
chrome.windows.create(
createData?: object,
): Promise<Window | undefined>
Membuat (membuka) jendela browser baru dengan ukuran, posisi, atau URL default opsional yang diberikan.
Parameter
- 
    createDataobjek opsional - 
    fokusboolean opsional Jika true, akan membuka jendela aktif. Jikafalse, membuka jendela yang tidak aktif.
- 
    tingginomor opsional Tinggi jendela baru dalam piksel, termasuk frame. Jika tidak ditentukan, defaultnya adalah tinggi alami. 
- 
    samaranboolean opsional Apakah jendela baru harus berupa jendela samaran. 
- 
    kirinomor opsional Jumlah piksel untuk memosisikan jendela baru dari tepi kiri layar. Jika tidak ditentukan, jendela baru akan diimbangi secara alami dari jendela terakhir yang difokuskan. Nilai ini diabaikan untuk panel. 
- 
    setSelfAsOpenerboolean opsional Chrome 64+Jika true, 'window.opener' jendela yang baru dibuat disetel ke pemanggil dan berada di unit konteks penjelajahan terkait yang sama dengan pemanggil.
- 
    dengan status tersembunyi akhirWindowState opsional Chrome 44+Status awal jendela. Status minimized,maximized, danfullscreentidak dapat digabungkan denganleft,top,width, atauheight.
- 
    tabIdnomor opsional ID tab yang akan ditambahkan ke jendela baru. 
- 
    atasnomor opsional Jumlah piksel untuk memosisikan jendela baru dari tepi atas layar. Jika tidak ditentukan, jendela baru akan diimbangi secara alami dari jendela terakhir yang difokuskan. Nilai ini diabaikan untuk panel. 
- 
    jenisCreateType opsional Menentukan jenis jendela browser yang akan dibuat. 
- 
    urlstring | string[] opsional URL atau array URL yang akan dibuka sebagai tab di jendela. URL yang sepenuhnya memenuhi syarat harus menyertakan skema, misalnya, 'http://www.google.com', bukan 'www.google.com'. URL yang tidak sepenuhnya memenuhi syarat dianggap relatif dalam ekstensi. Default-nya adalah Halaman Tab Baru. 
- 
    lebarnomor opsional Lebar jendela baru dalam piksel, termasuk frame. Jika tidak ditentukan, defaultnya adalah lebar alami. 
 
- 
    
Hasil
- 
            Promise<Window | undefined> Chrome 88+
get()
chrome.windows.get(
windowId: number,
queryOptions?: QueryOptions,
): Promise<Window>
Mendapatkan detail tentang jendela.
Parameter
- 
    windowIdangka 
- 
    queryOptionsQueryOptions opsional Chrome 88+
Hasil
- 
            Promise<Window> Chrome 88+
getAll()
chrome.windows.getAll(
queryOptions?: QueryOptions,
): Promise<Window[]>
Mendapatkan semua jendela.
Parameter
- 
    queryOptionsQueryOptions opsional Chrome 88+
Hasil
- 
            Promise<Window[]> Chrome 88+
getCurrent()
chrome.windows.getCurrent(
queryOptions?: QueryOptions,
): Promise<Window>
Mendapatkan jendela saat ini.
Parameter
- 
    queryOptionsQueryOptions opsional Chrome 88+
Hasil
- 
            Promise<Window> Chrome 88+
getLastFocused()
chrome.windows.getLastFocused(
queryOptions?: QueryOptions,
): Promise<Window>
Mendapatkan jendela yang terakhir kali difokuskan — biasanya jendela 'di atas'.
Parameter
- 
    queryOptionsQueryOptions opsional Chrome 88+
Hasil
- 
            Promise<Window> Chrome 88+
remove()
chrome.windows.remove(
windowId: number,
): Promise<void>
Menghapus (menutup) jendela dan semua tab di dalamnya.
Parameter
- 
    windowIdangka 
Hasil
- 
            Promise<void> Chrome 88+
update()
chrome.windows.update(
windowId: number,
updateInfo: object,
): Promise<Window>
Memperbarui properti jendela. Tentukan hanya properti yang akan diubah; properti yang tidak ditentukan tidak akan berubah.
Parameter
- 
    windowIdangka 
- 
    updateInfoobjek - 
    drawAttentionboolean opsional Jika true, menyebabkan jendela ditampilkan dengan cara yang menarik perhatian pengguna ke jendela, tanpa mengubah jendela yang difokuskan. Efek ini berlangsung hingga pengguna mengubah fokus ke jendela. Opsi ini tidak berpengaruh jika jendela sudah memiliki fokus. Setel kefalseuntuk membatalkan permintaandrawAttentionsebelumnya.
- 
    fokusboolean opsional Jika true, akan menampilkan jendela ke depan; tidak dapat digabungkan dengan status 'dikecilkan'. Jikafalse, akan memunculkan jendela berikutnya dalam urutan z ke depan; tidak dapat digabungkan dengan status 'fullscreen' atau 'maximized'.
- 
    tingginomor opsional Tinggi untuk mengubah ukuran jendela dalam piksel. Nilai ini diabaikan untuk panel. 
- 
    kirinomor opsional Offset dari tepi kiri layar untuk memindahkan jendela ke dalam piksel. Nilai ini diabaikan untuk panel. 
- 
    dengan status tersembunyi akhirWindowState opsional Status baru jendela. Status 'dikecilkan', 'dimaksimalkan', dan 'layar penuh' tidak dapat digabungkan dengan 'kiri', 'atas', 'lebar', atau 'tinggi'. 
- 
    atasnomor opsional Offset dari tepi atas layar untuk memindahkan jendela ke dalam piksel. Nilai ini diabaikan untuk panel. 
- 
    lebarnomor opsional Lebar untuk mengubah ukuran jendela dalam piksel. Nilai ini diabaikan untuk panel. 
 
- 
    
Hasil
- 
            Promise<Window> Chrome 88+
Acara
onBoundsChanged
chrome.windows.onBoundsChanged.addListener(
callback: function,
)
Diaktifkan saat jendela diubah ukurannya; peristiwa ini hanya dikirim saat batas baru diterapkan, dan bukan untuk perubahan yang sedang berlangsung.
Parameter
- 
    callbackfungsi Parameter callbackterlihat seperti:(window: Window) => void - 
    jendela
 
- 
    
onCreated
chrome.windows.onCreated.addListener(
callback: function,
filters?: object,
)
Diaktifkan saat jendela dibuat.
Parameter
- 
    callbackfungsi Chrome 46+Parameter callbackterlihat seperti:(window: Window) => void - 
    jendelaDetail jendela yang dibuat. 
 
- 
    
- 
    filterobjek opsional - 
    windowTypesKondisi yang harus dipenuhi oleh jenis jendela yang dibuat. Secara default, nilai ini memenuhi ['normal', 'popup'].
 
- 
    
onFocusChanged
chrome.windows.onFocusChanged.addListener(
callback: function,
filters?: object,
)
Diaktifkan saat jendela yang saat ini difokuskan berubah. Menampilkan chrome.windows.WINDOW_ID_NONE jika semua jendela Chrome kehilangan fokus. Catatan: Di beberapa pengelola jendela Linux, WINDOW_ID_NONE selalu dikirimkan tepat sebelum peralihan dari satu jendela Chrome ke jendela Chrome lainnya.
Parameter
- 
    callbackfungsi Chrome 46+Parameter callbackterlihat seperti:(windowId: number) => void - 
    windowIdangka ID jendela yang baru difokuskan. 
 
- 
    
- 
    filterobjek opsional - 
    windowTypesKondisi yang harus dipenuhi oleh jenis jendela yang dihapus. Secara default, nilai ini memenuhi ['normal', 'popup'].
 
- 
    
onRemoved
chrome.windows.onRemoved.addListener(
callback: function,
filters?: object,
)
Diaktifkan saat jendela dihapus (ditutup).
Parameter
- 
    callbackfungsi Chrome 46+Parameter callbackterlihat seperti:(windowId: number) => void - 
    windowIdangka ID jendela yang dihapus. 
 
- 
    
- 
    filterobjek opsional - 
    windowTypesKondisi yang harus dipenuhi oleh jenis jendela yang dihapus. Secara default, nilai ini memenuhi ['normal', 'popup'].
 
-