Descripción
Usa la API de chrome.windows para interactuar con las ventanas del navegador. Puedes usar esta API para crear, modificar y reorganizar ventanas en el navegador.
Permisos
Cuando se solicita, un objeto windows.Window contiene un array de objetos tabs.Tab. Debes declarar el permiso "tabs" en tu manifiesto si necesitas acceso a las propiedades url, pendingUrl, title o favIconUrl de tabs.Tab. Por ejemplo:
{
"name": "My extension",
...
"permissions": ["tabs"],
...
}
Conceptos y uso
La ventana actual
Muchas funciones del sistema de extensiones toman un argumento windowId opcional, que se establece de forma predeterminada en la
ventana actual.
La ventana actual es la que contiene el código que se está ejecutando en ese momento. Es importante tener en cuenta que esto puede ser diferente de la ventana superior o enfocada.
Por ejemplo, supongamos que una extensión crea algunas pestañas o ventanas a partir de un solo archivo HTML y que el archivo HTML contiene una llamada a tabs.query(). La ventana actual es la que contiene la página que realizó la llamada, sin importar cuál sea la ventana superior.
En el caso de los service workers, el valor de la ventana actual recurre a la última ventana activa. En algunas circunstancias, es posible que no haya una ventana actual para las páginas en segundo plano.
Ejemplos
Para probar esta API, instala el ejemplo de la API de Windows desde el repositorio chrome-extension-samples.
Tipos
CreateType
Especifica qué tipo de ventana del navegador se debe crear. "panel" dejó de estar disponible y solo está disponible para las extensiones existentes incluidas en la lista de entidades permitidas en ChromeOS.
Enum
"normal"
Especifica la ventana como una ventana estándar.
"popup"
Especifica la ventana como una ventana emergente.
"panel"
Especifica la ventana como un panel.
QueryOptions
Propiedades
-
propagar
booleano opcional
Si es verdadero, el objeto
windows.Windowtiene una propiedadtabsque contiene una lista de los objetostabs.Tab. Los objetosTabsolo contienen las propiedadesurl,pendingUrl,titleyfavIconUrlsi el archivo de manifiesto de la extensión incluye el permiso"tabs". -
windowTypes
WindowType[] opcional
Si se establece, el
windows.Windowque se devuelve se filtra según su tipo. Si no se configura, el filtro predeterminado se establece en['normal', 'popup'].
Window
Propiedades
-
alwaysOnTop
booleano
Indica si la ventana está configurada para estar siempre en la parte superior.
-
enfocados
booleano
Indica si la ventana es la que está enfocada actualmente.
-
alto
number opcional
Es la altura de la ventana, incluido el marco, en píxeles. En algunas circunstancias, es posible que no se asigne una propiedad
heighta una ventana, por ejemplo, cuando se consultan ventanas cerradas desde la API desessions. -
id
number opcional
Es el ID de la ventana. Los IDs de ventana son únicos dentro de una sesión del navegador. En algunas circunstancias, es posible que no se asigne una propiedad
IDa una ventana, por ejemplo, cuando se consultan ventanas con la API desessions, en cuyo caso puede haber un ID de sesión. -
incognito
booleano
Indica si la ventana es de incógnito.
-
izquierda
number opcional
Es el desplazamiento de la ventana desde el borde izquierdo de la pantalla en píxeles. En algunas circunstancias, es posible que no se asigne una propiedad
lefta una ventana, por ejemplo, cuando se consultan ventanas cerradas desde la API desessions. -
sessionId
string opcional
Es el ID de sesión que se usa para identificar de forma inequívoca una ventana, que se obtiene de la API de
sessions. -
state
WindowState opcional
Es el estado de esta ventana del navegador.
-
tabs
Tab[] opcional
Es un array de objetos
tabs.Tabque representan las pestañas actuales de la ventana. -
superior
number opcional
Es el desplazamiento de la ventana desde el borde superior de la pantalla en píxeles. En algunas circunstancias, es posible que no se asigne una propiedad
topa una ventana, por ejemplo, cuando se consultan ventanas cerradas desde la API desessions. -
tipo
WindowType opcional
Es el tipo de ventana del navegador.
-
ancho
number opcional
Es el ancho de la ventana, incluido el marco, en píxeles. En algunas circunstancias, es posible que no se asigne una propiedad
widtha una ventana, por ejemplo, cuando se consultan ventanas cerradas desde la API desessions.
WindowState
Es el estado de esta ventana del navegador. En algunas circunstancias, es posible que no se asigne una propiedad state a una ventana, por ejemplo, cuando se consultan ventanas cerradas desde la API de sessions.
Enum
"normal"
Estado normal de la ventana (no minimizada, maximizada ni en pantalla completa).
"minimized"
Estado de ventana minimizada.
"maximized"
Estado de la ventana maximizada.
"fullscreen"
Estado de la ventana en pantalla completa.
WindowType
Es el tipo de ventana del navegador. En algunas circunstancias, es posible que no se asigne una propiedad type a una ventana, por ejemplo, cuando se consultan ventanas cerradas desde la API de sessions.
Enum
"normal"
Una ventana del navegador normal.
"popup"
Una ventana emergente del navegador.
"panel"
Obsoleto en esta API. Una ventana de estilo panel de una app de Chrome. Las extensiones solo pueden ver sus propias ventanas de panel.
"app"
Obsoleto en esta API. Una ventana de la app de Chrome. Las extensiones solo pueden ver las ventanas de su propia app.
"devtools"
Una ventana de Herramientas para desarrolladores.
Propiedades
WINDOW_ID_CURRENT
Es el valor de windowId que representa la ventana actual.
Valor
-2
WINDOW_ID_NONE
Es el valor de windowId que representa la ausencia de una ventana del navegador Chrome.
Valor
-1
Métodos
create()
browser.windows.create(
createData?: object,
): Promise<Window | undefined>
Crea (abre) una nueva ventana del navegador con cualquier tamaño, posición o URL predeterminada opcional que se proporcione.
Parámetros
-
createData
objeto opcional
-
enfocados
booleano opcional
Si es
true, abre una ventana activa. Si esfalse, se abre una ventana inactiva. -
alto
number opcional
Es la altura en píxeles de la ventana nueva, incluido el marco. Si no se especifica, se establece de forma predeterminada en una altura natural.
-
incognito
booleano opcional
Indica si la ventana nueva debe ser de incógnito.
-
izquierda
number opcional
Es la cantidad de píxeles para posicionar la ventana nueva desde el borde izquierdo de la pantalla. Si no se especifica, la ventana nueva se desplaza de forma natural desde la última ventana enfocada. Este valor se ignora para los paneles.
-
setSelfAsOpener
booleano opcional
Chrome 64 y versiones posteriores browser.* desde Chrome 148Si es
true, el valor "window.opener" de la ventana recién creada se establece en el emisor y se encuentra en la misma unidad de contextos de navegación relacionados que el emisor. -
state
WindowState opcional
Chrome 44 y versiones posteriores browser.* desde Chrome 148Es el estado inicial de la ventana. Los estados
minimized,maximizedyfullscreenno se pueden combinar conleft,top,widthniheight. -
tabId
number opcional
Es el ID de la pestaña que se agregará a la ventana nueva.
-
superior
number opcional
Es la cantidad de píxeles para posicionar la ventana nueva desde el borde superior de la pantalla. Si no se especifica, la ventana nueva se desplaza de forma natural desde la última ventana enfocada. Este valor se ignora para los paneles.
-
tipo
CreateType opcional
Especifica qué tipo de ventana del navegador se debe crear.
-
url
string | string[] opcional
Es una URL o un array de URLs que se abrirán como pestañas en la ventana. Las URLs completas deben incluir un esquema, p.ej., "http://www.google.com", no "www.google.com". Las URLs que no están completamente calificadas se consideran relativas dentro de la extensión. La opción predeterminada es la página Nueva pestaña.
-
ancho
number opcional
Es el ancho en píxeles de la ventana nueva, incluido el marco. Si no se especifica, el valor predeterminado es un ancho natural.
-
Muestra
-
Promise<Window | undefined>
Chrome 88 y versiones posteriores browser.* desde Chrome 148
get()
browser.windows.get(
windowId: number,
queryOptions?: QueryOptions,
): Promise<Window>
Obtiene detalles sobre una ventana.
Parámetros
-
windowId
número
-
queryOptions
QueryOptions opcional
Chrome 88 y versiones posteriores browser.* desde Chrome 148
Muestra
-
Promise<Window>
Chrome 88 y versiones posteriores browser.* desde Chrome 148
getAll()
browser.windows.getAll(
queryOptions?: QueryOptions,
): Promise<Window[]>
Obtiene todas las ventanas.
Parámetros
-
queryOptions
QueryOptions opcional
Chrome 88 y versiones posteriores browser.* desde Chrome 148
Muestra
-
Promise<Window[]>
Chrome 88 y versiones posteriores browser.* desde Chrome 148
getCurrent()
browser.windows.getCurrent(
queryOptions?: QueryOptions,
): Promise<Window>
Obtiene la ventana actual.
Parámetros
-
queryOptions
QueryOptions opcional
Chrome 88 y versiones posteriores browser.* desde Chrome 148
Muestra
-
Promise<Window>
Chrome 88 y versiones posteriores browser.* desde Chrome 148
getLastFocused()
browser.windows.getLastFocused(
queryOptions?: QueryOptions,
): Promise<Window>
Obtiene la ventana que se enfocó más recientemente, por lo general, la ventana "en la parte superior".
Parámetros
-
queryOptions
QueryOptions opcional
Chrome 88 y versiones posteriores browser.* desde Chrome 148
Muestra
-
Promise<Window>
Chrome 88 y versiones posteriores browser.* desde Chrome 148
remove()
browser.windows.remove(
windowId: number,
): Promise<void>
Quita (cierra) una ventana y todas las pestañas que contiene.
Parámetros
-
windowId
número
Muestra
-
Promise<void>
Chrome 88 y versiones posteriores browser.* desde Chrome 148
update()
browser.windows.update(
windowId: number,
updateInfo: object,
): Promise<Window>
Actualiza las propiedades de una ventana. Especifica solo las propiedades que se deben cambiar. Las propiedades no especificadas no se modifican.
Parámetros
-
windowId
número
-
updateInfo
objeto
-
drawAttention
booleano opcional
Si es
true, hace que la ventana se muestre de una manera que atraiga la atención del usuario hacia ella, sin cambiar la ventana enfocada. El efecto dura hasta que el usuario cambia el enfoque a la ventana. Esta opción no tiene ningún efecto si la ventana ya está enfocada. Establece este parámetro comofalsepara cancelar una solicituddrawAttentionanterior. -
enfocados
booleano opcional
Si es
true, lleva la ventana al frente; no se puede combinar con el estado "minimized". Si esfalse, lleva la siguiente ventana en el orden Z al frente; no se puede combinar con el estado "fullscreen" o "maximized". -
alto
number opcional
Es la altura en píxeles a la que se cambiará el tamaño de la ventana. Este valor se ignora para los paneles.
-
izquierda
number opcional
Es el desplazamiento desde el borde izquierdo de la pantalla para mover la ventana, en píxeles. Este valor se ignora para los paneles.
-
state
WindowState opcional
Es el estado nuevo de la ventana. Los estados "minimized", "maximized" y "fullscreen" no se pueden combinar con "left", "top", "width" ni "height".
-
superior
number opcional
Es el desplazamiento en píxeles desde el borde superior de la pantalla para mover la ventana. Este valor se ignora para los paneles.
-
ancho
number opcional
Es el ancho en píxeles al que se cambiará el tamaño de la ventana. Este valor se ignora para los paneles.
-
Muestra
-
Promise<Window>
Chrome 88 y versiones posteriores browser.* desde Chrome 148
Eventos
onBoundsChanged
browser.windows.onBoundsChanged.addListener(
callback: function,
)
Se activa cuando se cambia el tamaño de una ventana. Este evento solo se envía cuando se confirman los nuevos límites, no para los cambios en curso.
Parámetros
-
callback
función
El parámetro
callbackse ve de la siguiente manera:(window: Window) => void
-
ventana
-
onCreated
browser.windows.onCreated.addListener(
callback: function,
filters?: object,
)
Se activa cuando se crea una ventana.
Parámetros
-
callback
función
Chrome 46 y versiones posteriores browser.* desde Chrome 148El parámetro
callbackse ve de la siguiente manera:(window: Window) => void
-
ventana
Son los detalles de la ventana creada.
-
-
filtros
objeto opcional
-
windowTypes
Son las condiciones que debe cumplir el tipo de ventana que se está creando. De forma predeterminada, cumple con
['normal', 'popup'].
-
onFocusChanged
browser.windows.onFocusChanged.addListener(
callback: function,
filters?: object,
)
Se activa cuando cambia la ventana que tiene el foco. Devuelve chrome.windows.WINDOW_ID_NONE si todas las ventanas de Chrome perdieron el enfoque. Nota: En algunos administradores de ventanas de Linux, WINDOW_ID_NONE siempre se envía inmediatamente antes de cambiar de una ventana de Chrome a otra.
Parámetros
-
callback
función
Chrome 46 y versiones posteriores browser.* desde Chrome 148El parámetro
callbackse ve de la siguiente manera:(windowId: number) => void
-
windowId
número
Es el ID de la ventana que se enfocó recientemente.
-
-
filtros
objeto opcional
-
windowTypes
Son las condiciones que debe cumplir el tipo de ventana que se quitará. De forma predeterminada, cumple con
['normal', 'popup'].
-
onRemoved
browser.windows.onRemoved.addListener(
callback: function,
filters?: object,
)
Se activa cuando se quita (cierra) una ventana.
Parámetros
-
callback
función
Chrome 46 y versiones posteriores browser.* desde Chrome 148El parámetro
callbackse ve de la siguiente manera:(windowId: number) => void
-
windowId
número
Es el ID de la ventana que se quitó.
-
-
filtros
objeto opcional
-
windowTypes
Son las condiciones que debe cumplir el tipo de ventana que se quitará. De forma predeterminada, cumple con
['normal', 'popup'].
-