Opis
Do interakcji z oknami przeglądarki używaj interfejsu API chrome.windows
. Za pomocą tego interfejsu API możesz tworzyć, modyfikować i zmieniać kolejność okien w przeglądarce.
Plik manifestu
Na żądanie windows.Window
zawiera tablicę obiektów tabs.Tab
. Musisz
zadeklaruj w manifeście uprawnienia "tabs"
, jeśli potrzebujesz dostępu do url
,
pendingUrl
, title
i favIconUrl
wartości tabs.Tab
. Na przykład:
{
"name": "My extension",
...
"permissions": ["tabs"],
...
}
Bieżące okno
Wiele funkcji w systemie rozszerzeń przyjmuje opcjonalny argument windowId
, który domyślnie przyjmuje wartość
w bieżącym oknie.
Bieżące okno to okno zawierające wykonywany obecnie kod. Jest pamiętaj, że może się ono różnić od okna najwyższego lub najwyższego poziomu.
Jeśli na przykład rozszerzenie tworzy kilka kart lub okien z jednego pliku HTML, a rozszerzenie
Plik HTML zawiera wywołanie tabs.query()
. Bieżące okno to okno zawierające
stronę, na której wykonano połączenie, niezależnie od tego, które okno znajduje się najwyżej.
W przypadku skryptów service worker bieżący okres wraca do ostatniego aktywnego okna. okno. W niektórych okolicznościach bieżące okno stron działających w tle może być niedostępne.
Przykłady
Aby wypróbować ten interfejs API, zainstaluj przykładowy interfejs API Windows ze strony chrome-extension-samples. z repozytorium.
Typy
CreateType
Określa typ okna przeglądarki do utworzenia. panel została wycofana i jest dostępna tylko dla istniejących rozszerzeń na liście dozwolonych w Chrome OS.
Typ wyliczeniowy
"normal"
Określa okno jako standardowe.
"popup"
Określa okno jako wyskakujące okienko.
"panel"
Określa okno jako panel.
QueryOptions
Właściwości
-
wypełnić : uzupełnić
Wartość logiczna opcjonalna
Jeśli wartość to prawda, obiekt
windows.Window
ma właściwośćtabs
, która zawiera listę obiektówtabs.Tab
. ObiektyTab
zawierają właściwościurl
,pendingUrl
,title
ifavIconUrl
tylko wtedy, gdy plik manifestu rozszerzenia zawiera uprawnienie"tabs"
. -
windowTypes
WindowType[] opcjonalny
Jeśli jest ustawiony, zwracana wartość
windows.Window
jest filtrowana na podstawie typu. Jeśli zasada jest nieskonfigurowana, domyślnym filtrem jest['normal', 'popup']
.
Window
Właściwości
-
alwaysOnTop
wartość logiczna
Określa, czy okno ma być zawsze na górze.
-
skupiony
wartość logiczna
Określa, czy okno jest obecnie zaznaczone.
-
wysokość
liczba opcjonalnie
Wysokość okna wraz z ramką (w pikselach). W niektórych przypadkach okno może nie mieć przypisanej właściwości
height
. na przykład w przypadku zapytań dotyczących zamkniętych okien za pomocą interfejsu APIsessions
. -
id
liczba opcjonalnie
Identyfikator okna. Identyfikatory okien są unikalne w ramach sesji przeglądarki. W niektórych przypadkach okno może nie mieć przypisanej właściwości
ID
. na przykład podczas wysyłania zapytań do okien przy użyciu interfejsu APIsessions
– w takim przypadku może być obecny identyfikator sesji. -
incognito
wartość logiczna
Określa, czy okno jest w trybie incognito.
-
w lewo
liczba opcjonalnie
Odsunięcie okna od lewej krawędzi ekranu w pikselach. W niektórych przypadkach okno może nie mieć przypisanej właściwości
left
. na przykład w przypadku zapytań dotyczących zamkniętych okien za pomocą interfejsu APIsessions
. -
sessionId
ciąg znaków opcjonalny
Identyfikator sesji używany do jednoznacznego identyfikowania okna pobrany z interfejsu API
sessions
. -
stan
Opcjonalny WindowState
Stan tego okna przeglądarki.
-
karty
Tab[] opcjonalnie
Tablica obiektów
tabs.Tab
reprezentujących bieżące karty w oknie. -
góra
liczba opcjonalnie
Odsunięcie okna od górnej krawędzi ekranu w pikselach. W niektórych przypadkach okno może nie mieć przypisanej właściwości
top
. na przykład w przypadku zapytań dotyczących zamkniętych okien za pomocą interfejsu APIsessions
. -
typ
Opcjonalny WindowType
Typ okna przeglądarki.
-
szerokość
liczba opcjonalnie
Szerokość okna wraz z ramką (w pikselach). W niektórych przypadkach okno może nie mieć przypisanej właściwości
width
. na przykład w przypadku zapytań dotyczących zamkniętych okien za pomocą interfejsu APIsessions
.
WindowState
Stan tego okna przeglądarki. W niektórych przypadkach okno może nie mieć przypisanej właściwości state
. na przykład w przypadku zapytań dotyczących zamkniętych okien za pomocą interfejsu API sessions
.
Typ wyliczeniowy
"normal"
Normalny stan okna (nie zminimalizowany, zmaksymalizowany ani pełny ekran).
„zminimalizowany”
Stan zminimalizowanego okna.
"zmaksymalizowany"
stan zmaksymalizowanego okna.
"fullscreen"
Stan pełnego ekranu.
"locked-fullscreen"
Zablokowany stan okna pełnego ekranu. Z tego stanu pełnego ekranu nie można wyjść przez działanie użytkownika. Jest on dostępny tylko w przypadku rozszerzeń z listy dozwolonych w Chrome OS.
WindowType
Typ okna przeglądarki. W niektórych przypadkach okno może nie mieć przypisanej właściwości type
. na przykład w przypadku zapytań dotyczących zamkniętych okien za pomocą interfejsu API sessions
.
Typ wyliczeniowy
"normal"
Normalne okno przeglądarki.
"popup"
Wyskakujące okienko przeglądarki.
"panel"
Wycofano w tym interfejsie API. Okno stylizowane na panel aplikacji Chrome. Rozszerzenia widzą tylko własne okna paneli.
"app"
Wycofano w tym interfejsie API. Okno aplikacji Chrome. Rozszerzenia widzą tylko własne okna aplikacji.
"devtools"
Okno narzędzi dla programistów.
Właściwości
WINDOW_ID_CURRENT
Wartość windowId, która reprezentuje bieżące okno.
Wartość
–2
WINDOW_ID_NONE
Wartość windowId reprezentująca brak okna przeglądarki Chrome.
Wartość
–1
Metody
create()
chrome.windows.create(
createData?: object,
callback?: function,
)
Tworzy (otwiera) nowe okno przeglądarki z dowolnymi opcjonalnymi rozmiarami, położeniem i domyślnym adresem URL.
Parametry
-
createData
obiekt opcjonalny
-
skupiony
Wartość logiczna opcjonalna
Jeśli
true
, otwiera aktywne okno. Jeślifalse
, otwiera nieaktywne okno. -
wysokość
liczba opcjonalnie
Wysokość nowego okna z ramką w pikselach. Jeśli nie podasz żadnej wartości, zostanie użyta domyślna wysokość naturalna.
-
incognito
Wartość logiczna opcjonalna
Określa, czy nowe okno ma być oknem incognito.
-
w lewo
liczba opcjonalnie
Liczba pikseli, w których znajduje się nowe okno od lewej krawędzi ekranu. Jeśli nie określono tego ustawienia, nowe okno zostanie odsunięte naturalnie od ostatniego zaznaczonego okna. Ta wartość jest ignorowana w przypadku paneli.
-
setSelfAsOpener
Wartość logiczna opcjonalna
Chrome w wersji 64 lub nowszej .Jeśli
true
, parametr „window.opener” nowo utworzonego okna jest ustawiony na element wywołujący i należy do tej samej jednostki powiązanych kontekstów przeglądania co element wywołujący. -
stan
Opcjonalny WindowState
Chrome w wersji 44 lub nowszej .Początkowy stan okna. Stanów
minimized
,maximized
ifullscreen
nie można łączyć za pomocą stanówleft
,top
,width
aniheight
. -
tabId
liczba opcjonalnie
Identyfikator karty, która ma zostać dodana do nowego okna.
-
góra
liczba opcjonalnie
Liczba pikseli, w których znajduje się nowe okno od górnej krawędzi ekranu. Jeśli nie określono tego ustawienia, nowe okno zostanie odsunięte naturalnie od ostatniego zaznaczonego okna. Ta wartość jest ignorowana w przypadku paneli.
-
typ
Opcjonalny CreateType
Określa typ okna przeglądarki do utworzenia.
-
URL
string | string[] opcjonalnie
Adres URL lub tablica adresów URL, które mają być otwierane jako karty w oknie. Pełne adresy URL muszą zawierać schemat, np. „http://www.google.com”, a nie „www.google.com”. Niepełne adresy URL są uznawane w rozszerzeniu za względne. Domyślnie jest to strona nowej karty.
-
szerokość
liczba opcjonalnie
Szerokość nowego okna z ramką w pikselach. Jeśli nie podasz żadnej wartości, zostanie użyta domyślna szerokość naturalna.
-
-
wywołanie zwrotne
funkcja optional
Parametr
callback
wygląda tak:(window?: Window) => void
-
okno
Okno opcjonalne
Zawiera szczegółowe informacje o utworzonym oknie.
-
Zwroty
-
Promise<Window | niezdefiniowane>
Chrome 88 i nowsze .Obietnice są obsługiwane tylko na platformie Manifest V3 i nowszych, inne platformy muszą używać wywołań zwrotnych.
get()
chrome.windows.get(
windowId: number,
queryOptions?: QueryOptions,
callback?: function,
)
Pobiera szczegóły okna.
Parametry
-
windowId
liczba
-
queryOptions
Opcjonalne QueryOptions
Chrome 88 i nowsze . -
wywołanie zwrotne
funkcja optional
Parametr
callback
wygląda tak:(window: Window) => void
-
okno
-
Zwroty
-
Promise<Window>
Chrome 88 i nowsze .Obietnice są obsługiwane tylko na platformie Manifest V3 i nowszych, inne platformy muszą używać wywołań zwrotnych.
getAll()
chrome.windows.getAll(
queryOptions?: QueryOptions,
callback?: function,
)
Pobiera wszystkie okna.
Parametry
-
queryOptions
Opcjonalne QueryOptions
Chrome 88 i nowsze . -
wywołanie zwrotne
funkcja optional
Parametr
callback
wygląda tak:(windows: Window[]) => void
-
okna
Okno[]
-
Zwroty
-
Promise<Window[]>
Chrome 88 i nowsze .Obietnice są obsługiwane tylko na platformie Manifest V3 i nowszych, inne platformy muszą używać wywołań zwrotnych.
getCurrent()
chrome.windows.getCurrent(
queryOptions?: QueryOptions,
callback?: function,
)
Pobiera bieżące okno.
Parametry
-
queryOptions
Opcjonalne QueryOptions
Chrome 88 i nowsze . -
wywołanie zwrotne
funkcja optional
Parametr
callback
wygląda tak:(window: Window) => void
-
okno
-
Zwroty
-
Promise<Window>
Chrome 88 i nowsze .Obietnice są obsługiwane tylko na platformie Manifest V3 i nowszych, inne platformy muszą używać wywołań zwrotnych.
getLastFocused()
chrome.windows.getLastFocused(
queryOptions?: QueryOptions,
callback?: function,
)
Pobiera ostatnio zaznaczone okno – zwykle jest to okno „Na górze”.
Parametry
-
queryOptions
Opcjonalne QueryOptions
Chrome 88 i nowsze . -
wywołanie zwrotne
funkcja optional
Parametr
callback
wygląda tak:(window: Window) => void
-
okno
-
Zwroty
-
Promise<Window>
Chrome 88 i nowsze .Obietnice są obsługiwane tylko na platformie Manifest V3 i nowszych, inne platformy muszą używać wywołań zwrotnych.
remove()
chrome.windows.remove(
windowId: number,
callback?: function,
)
Usuwa (zamyka) okno i wszystkie znajdujące się w nim karty.
Parametry
-
windowId
liczba
-
wywołanie zwrotne
funkcja optional
Parametr
callback
wygląda tak:() => void
Zwroty
-
Obietnica<void>
Chrome 88 i nowsze .Obietnice są obsługiwane tylko na platformie Manifest V3 i nowszych, inne platformy muszą używać wywołań zwrotnych.
update()
chrome.windows.update(
windowId: number,
updateInfo: object,
callback?: function,
)
Aktualizuje właściwości okna. określać tylko właściwości do zmiany; nieokreślone właściwości pozostaną niezmienione.
Parametry
-
windowId
liczba
-
updateInfo
Obiekt
-
drawAttention
Wartość logiczna opcjonalna
Jeśli zasada ma wartość
true
, okno wyświetla się w sposób, który przyciąga uwagę użytkownika do okna, ale nie zmienia zaznaczonego okna. Efekt będzie działać, dopóki użytkownik nie zmieni zaznaczenia okna. Ta opcja nie działa, jeśli okno jest już zaznaczone. Ustaw jakofalse
, aby anulować poprzednią prośbę odrawAttention
. -
skupiony
Wartość logiczna opcjonalna
Jeśli
true
, przenosi okno na wierzch; nie można łączyć ze stanem „zminimalizowany”. Jeślifalse
, przenosi następne okno na wierzch zgodnie ze właściwością Z. nie można łączyć ze stanem „pełnoekranowy” lub „zmaksymalizowane”. -
wysokość
liczba opcjonalnie
Wysokość w pikselach, do której należy zmienić rozmiar okna. Ta wartość jest ignorowana w przypadku paneli.
-
w lewo
liczba opcjonalnie
Przesunięcie okna od lewej krawędzi ekranu (w pikselach). Ta wartość jest ignorowana w przypadku paneli.
-
stan
Opcjonalny WindowState
Nowy stan okna. „Zminimalizowane”, „zmaksymalizowane” i „pełnoekranowe” stanów nie można łączyć z wartościami „left”, „top”, „width” i „height”.
-
góra
liczba opcjonalnie
Przesunięcie okna od górnej krawędzi ekranu (w pikselach). Ta wartość jest ignorowana w przypadku paneli.
-
szerokość
liczba opcjonalnie
Szerokość w pikselach, pod jaką zmienia się rozmiar okna. Ta wartość jest ignorowana w przypadku paneli.
-
-
wywołanie zwrotne
funkcja optional
Parametr
callback
wygląda tak:(window: Window) => void
-
okno
-
Zwroty
-
Promise<Window>
Chrome 88 i nowsze .Obietnice są obsługiwane tylko na platformie Manifest V3 i nowszych, inne platformy muszą używać wywołań zwrotnych.
Wydarzenia
onBoundsChanged
chrome.windows.onBoundsChanged.addListener(
callback: function,
)
Uruchamiane po zmianie rozmiaru okna. to zdarzenie jest wysyłane tylko po zatwierdzeniu nowych granic, a nie w przypadku zmian w toku.
Parametry
-
wywołanie zwrotne
funkcja
Parametr
callback
wygląda tak:(window: Window) => void
-
okno
-
onCreated
chrome.windows.onCreated.addListener(
callback: function,
filters?: object,
)
Uruchamiane po utworzeniu okna.
Parametry
-
wywołanie zwrotne
funkcja
Chrome w wersji 46 lub nowszej, .Parametr
callback
wygląda tak:(window: Window) => void
-
okno
Szczegóły utworzonego okna.
-
-
filtry
obiekt opcjonalny
-
windowTypes
Warunki, które muszą być spełnione przez tworzone okno. Domyślnie spełnia wymogi
['normal', 'popup']
.
-
onFocusChanged
chrome.windows.onFocusChanged.addListener(
callback: function,
filters?: object,
)
Uruchamiane po zmianie aktualnie zaznaczonego okna. Zwraca wartość chrome.windows.WINDOW_ID_NONE
, jeśli wszystkie okna Chrome są nieaktywne. Uwaga: w przypadku niektórych menedżerów okien z Linuksem okno WINDOW_ID_NONE
jest zawsze wysyłane bezpośrednio przed przejściem z jednego okna Chrome do innego.
Parametry
-
wywołanie zwrotne
funkcja
Chrome w wersji 46 lub nowszej, .Parametr
callback
wygląda tak:(windowId: number) => void
-
windowId
liczba
Identyfikator nowego okna.
-
-
filtry
obiekt opcjonalny
-
windowTypes
Warunki, które muszą być spełnione przez usuwany typ okna. Domyślnie spełnia wymogi
['normal', 'popup']
.
-
onRemoved
chrome.windows.onRemoved.addListener(
callback: function,
filters?: object,
)
Uruchamiane, gdy okno zostanie usunięte (zamknięte).
Parametry
-
wywołanie zwrotne
funkcja
Chrome w wersji 46 lub nowszej, .Parametr
callback
wygląda tak:(windowId: number) => void
-
windowId
liczba
Identyfikator usuniętego okna.
-
-
filtry
obiekt opcjonalny
-
windowTypes
Warunki, które muszą być spełnione przez usuwany typ okna. Domyślnie spełnia wymogi
['normal', 'popup']
.
-