Descripción
Usa la API de chrome.tabs para interactuar con el sistema de pestañas del navegador. Puedes usar esta API para crear, modificar y reorganizar pestañas en el navegador.
La API de Tabs no solo ofrece funciones para manipular y administrar pestañas, sino que también puede detectar el idioma de la pestaña, tomar una captura de pantalla y comunicarse con las secuencias de comandos de contenido de una pestaña.
Permisos
La mayoría de las funciones no requieren ningún permiso para usarse. Por ejemplo: crear una pestaña nueva, volver a cargar una pestaña, navegar a otra URL, etc.
Hay tres permisos que los desarrolladores deben tener en cuenta cuando trabajan con la API de Tabs.
- El permiso "tabs"
Este permiso no otorga acceso al espacio de nombres
browser.tabs. En cambio, otorga a una extensión la capacidad de llamar atabs.query()en cuatro propiedades sensibles en instancias detabs.Tab:url,pendingUrl,titleyfavIconUrl.{ "name": "My extension", ... "permissions": [ "tabs" ], ... }- Permisos de host
Los permisos de host permiten que una extensión lea y consulte las cuatro propiedades sensibles de
tabs.Tabde una pestaña coincidente. También pueden interactuar directamente con las pestañas coincidentes usando métodos comotabs.captureVisibleTab(),scripting.executeScript(),scripting.insertCSS()yscripting.removeCSS().{ "name": "My extension", ... "host_permissions": [ "http://*/*", "https://*/*" ], ... }- El permiso "activeTab"
activeTabotorga a una extensión un permiso de host temporal para la pestaña actual en respuesta a una invocación del usuario. A diferencia de los permisos de host,activeTabno activa ninguna advertencia.{ "name": "My extension", ... "permissions": [ "activeTab" ], ... }
Casos de uso
En las siguientes secciones, se muestran algunos casos de uso comunes.
Abrir una página de extensión en una pestaña nueva
Un patrón común para las extensiones es abrir una página de incorporación en una pestaña nueva cuando se instala la extensión. En el siguiente ejemplo, se muestra cómo hacerlo.
background.js:
browser.runtime.onInstalled.addListener(({reason}) => {
if (reason === 'install') {
browser.tabs.create({
url: "onboarding.html"
});
}
});
Obtener la pestaña actual
En este ejemplo, se muestra cómo el service worker de una extensión puede recuperar la pestaña activa de la ventana enfocada actualmente (o la ventana enfocada más recientemente, si no hay ventanas de Chrome enfocadas). Por lo general, se puede considerar como la pestaña actual del usuario.
async function getCurrentTab() {
let queryOptions = { active: true, lastFocusedWindow: true };
// `tab` will either be a `tabs.Tab` instance or `undefined`.
let [tab] = await browser.tabs.query(queryOptions);
return tab;
}
function getCurrentTab(callback) {
let queryOptions = { active: true, lastFocusedWindow: true };
browser.tabs.query(queryOptions, ([tab]) => {
if (browser.runtime.lastError)
console.error(browser.runtime.lastError);
// `tab` will either be a `tabs.Tab` instance or `undefined`.
callback(tab);
});
}
Silenciar la pestaña especificada
En este ejemplo, se muestra cómo una extensión puede activar o desactivar el estado de silencio de una pestaña determinada.
async function toggleMuteState(tabId) {
const tab = await browser.tabs.get(tabId);
const muted = !tab.mutedInfo.muted;
await browser.tabs.update(tabId, {muted});
console.log(`Tab ${tab.id} is ${muted ? "muted" : "unmuted"}`);
}
function toggleMuteState(tabId) {
browser.tabs.get(tabId, async (tab) => {
let muted = !tab.mutedInfo.muted;
await browser.tabs.update(tabId, { muted });
console.log(`Tab ${tab.id} is ${ muted ? "muted" : "unmuted" }`);
});
}
Mover la pestaña actual a la primera posición cuando se hace clic en ella
En este ejemplo, se muestra cómo mover una pestaña mientras se arrastra o no. Si bien en este ejemplo se usa browser.tabs.move, puedes usar el mismo patrón de espera para otras llamadas que modifican pestañas mientras se arrastra un elemento.
browser.tabs.onActivated.addListener(moveToFirstPosition);
async function moveToFirstPosition(activeInfo) {
try {
await browser.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);
}
}
}
browser.tabs.onActivated.addListener(moveToFirstPositionMV2);
function moveToFirstPositionMV2(activeInfo) {
browser.tabs.move(activeInfo.tabId, { index: 0 }, () => {
if (browser.runtime.lastError) {
const error = browser.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.");
}
});
}
Pasa un mensaje a la secuencia de comandos de contenido de una pestaña seleccionada
En este ejemplo, se muestra cómo el service worker de una extensión puede comunicarse con las secuencias de comandos de contenido en pestañas específicas del navegador con tabs.sendMessage().
function sendMessageToActiveTab(message) {
const [tab] = await browser.tabs.query({ active: true, lastFocusedWindow: true });
const response = await browser.tabs.sendMessage(tab.id, message);
// TODO: Do something with the response.
}
Ejemplos de extensiones
Para ver más demostraciones de extensiones de la API de Tabs, explora cualquiera de las siguientes opciones:
Tipos
MutedInfo
Es el estado silenciado de la pestaña y el motivo del último cambio de estado.
Propiedades
-
extensionId
string opcional
Es el ID de la extensión que cambió el estado de silencio. No se establece si una extensión no fue el motivo por el que cambió el estado de silencio por última vez.
-
silenciado
booleano
Indica si la pestaña está silenciada (se impide que reproduzca sonido). Es posible que la pestaña esté silenciada incluso si no se reprodujo o no se está reproduciendo sonido en ella. Equivale a si se muestra el indicador de audio "silenciado".
-
Reason
MutedInfoReason opcional
Es el motivo por el que se silenció o se activó el sonido de la pestaña. No se establece si nunca se cambió el estado de silencio de la pestaña.
MutedInfoReason
Es un evento que causó un cambio de estado silenciado.
Enum
"user"
Una acción de entrada del usuario estableció el estado silenciado.
"capture"
Se inició la captura de la pestaña, lo que forzó un cambio de estado de silencio.
"extension"
Una extensión, identificada por el campo extensionId, estableció el estado silenciado.
Tab
Propiedades
-
activo
booleano
Indica si la pestaña está activa en su ventana. No significa necesariamente que la ventana esté enfocada.
-
Audible
booleano opcional
Chrome 45 y versiones posteriores browser.* desde Chrome 148Indica si la pestaña produjo sonido en los últimos segundos (pero es posible que no se escuche si también está silenciada). Equivale a si se muestra el indicador de "audio de la bocina".
-
autoDiscardable
booleano
Chrome 54 y versiones posteriores browser.* desde Chrome 148Indica si el navegador puede descartar la pestaña automáticamente cuando los recursos son bajos.
-
descartado
booleano
Chrome 54 y versiones posteriores browser.* desde Chrome 148Indica si se descartó la pestaña. Una pestaña descartada es aquella cuyo contenido se descargó de la memoria, pero sigue visible en la barra de pestañas. Su contenido se vuelve a cargar la próxima vez que se activa.
-
favIconUrl
string opcional
Es la URL del ícono de página de la pestaña. Esta propiedad solo está presente si la extensión tiene el permiso
"tabs"o tiene permisos de host para la página. También puede ser una cadena vacía si la pestaña se está cargando. -
no responde
booleano
Chrome 132 y versiones posteriores browser.* desde Chrome 148Indica si la pestaña está inmovilizada. Una pestaña inmovilizada no puede ejecutar tareas, incluidos los controladores de eventos o los temporizadores. Se puede ver en la tira de pestañas y su contenido se carga en la memoria. Se descongela cuando se activa.
-
groupId
número
Chrome 88 y versiones posteriores browser.* desde Chrome 148Es el ID del grupo al que pertenece la pestaña.
-
alto
number opcional
Es la altura de la pestaña en píxeles.
-
destacado
booleano
Indica si la pestaña está destacada.
-
id
number opcional
Es el ID de la pestaña. Los IDs de pestaña son únicos dentro de una sesión del navegador. En algunas circunstancias, es posible que no se asigne un ID a una pestaña, por ejemplo, cuando se consultan pestañas externas con la API de
sessions, en cuyo caso puede haber un ID de sesión. El ID de pestaña también se puede establecer enchrome.tabs.TAB_ID_NONEpara las apps y las ventanas de Herramientas para desarrolladores. -
incognito
booleano
Indica si la pestaña está en una ventana de incógnito.
-
índice
número
Es el índice basado en cero de la pestaña dentro de su ventana.
-
lastAccessed
número
Chrome 121 y versiones posteriores browser.* desde Chrome 148La última vez que la pestaña se activó en su ventana, expresada como la cantidad de milisegundos desde la época.
-
mutedInfo
MutedInfo opcional
Chrome 46 y versiones posteriores browser.* desde Chrome 148Es el estado silenciado de la pestaña y el motivo del último cambio de estado.
-
openerTabId
number opcional
Es el ID de la pestaña que abrió esta pestaña, si corresponde. Esta propiedad solo está presente si la pestaña de apertura aún existe.
-
pendingUrl
string opcional
Chrome 79 y versiones posteriores browser.* desde Chrome 148Es la URL a la que navega la pestaña antes de que se confirme. Esta propiedad solo está presente si la extensión tiene el permiso
"tabs"o tiene permisos de host para la página y hay una navegación pendiente. -
marcada
booleano
Indica si la pestaña está fijada.
-
seleccionado
booleano
ObsoletoUsa
tabs.Tab.highlighted.Indica si la pestaña está seleccionada.
-
sessionId
string opcional
Es el ID de sesión que se usa para identificar de forma única una pestaña obtenida de la API de
sessions. -
splitViewId
number opcional
Chrome 140 y versiones posteriores browser.* desde Chrome 148Es el ID de la vista dividida a la que pertenece la pestaña.
-
estado
TabStatus opcional
Es el estado de carga de la pestaña.
-
título
string opcional
Es el título de la pestaña. Esta propiedad solo está presente si la extensión tiene el permiso
"tabs"o tiene permisos de host para la página. -
url
string opcional
Es la última URL confirmada del marco principal de la pestaña. Esta propiedad solo está presente si la extensión tiene el permiso
"tabs"o tiene permisos de host para la página. Puede ser una cadena vacía si la pestaña aún no se confirmó. Consulta tambiénTab.pendingUrl. -
ancho
number opcional
Es el ancho de la pestaña en píxeles.
-
windowId
número
Es el ID de la ventana que contiene la pestaña.
TabStatus
Es el estado de carga de la pestaña.
Enum
"unloaded"
"loading"
"complete"
WindowType
Es el tipo de ventana.
Enum
"normal"
"popup"
"panel"
"app"
"devtools"
ZoomSettings
Define cómo se manejan los cambios de zoom en una pestaña y en qué alcance.
Propiedades
-
defaultZoomFactor
number opcional
Chrome 43 y versiones posteriores browser.* desde Chrome 148Se usa para devolver el nivel de zoom predeterminado de la pestaña actual en las llamadas a tabs.getZoomSettings.
-
Standard
ZoomSettingsMode opcional
Define cómo se manejan los cambios de zoom, es decir, qué entidad es responsable del escalamiento real de la página; el valor predeterminado es
automatic. -
alcance
ZoomSettingsScope opcional
Define si los cambios de zoom persisten para el origen de la página o solo se aplican en esta pestaña. El valor predeterminado es
per-origincuando se encuentra en el modoautomaticyper-taben caso contrario.
ZoomSettingsMode
Define cómo se manejan los cambios de zoom, es decir, qué entidad es responsable del escalamiento real de la página; el valor predeterminado es automatic.
Enum
"automatic"
El navegador controla automáticamente los cambios de zoom.
"manual"
Anula el control automático de los cambios de zoom. El evento onZoomChange se seguirá enviando, y es responsabilidad de la extensión escuchar este evento y escalar la página de forma manual. Este modo no admite el zoom de per-origin y, por lo tanto, ignora el parámetro de configuración de zoom de scope y supone per-tab.
"disabled"
Inhabilita todo el zoom en la pestaña. La pestaña vuelve al nivel de zoom predeterminado y se ignoran todos los intentos de cambiar el zoom.
ZoomSettingsScope
Define si los cambios de zoom persisten para el origen de la página o solo se aplican en esta pestaña. El valor predeterminado es per-origin cuando se encuentra en el modo automatic y per-tab en caso contrario.
Enum
"per-origin"
Los cambios de zoom persisten en el origen de la página con zoom, es decir, todas las demás pestañas que naveguen a ese mismo origen también tendrán zoom. Además, los cambios de zoom de per-origin se guardan con el origen, lo que significa que, cuando se navega a otras páginas del mismo origen, todas se amplían con el mismo factor de zoom. El permiso per-origin solo está disponible en el modo automatic.
"per-tab"
Los cambios de zoom solo se aplican en esta pestaña, y los cambios de zoom en otras pestañas no afectan el zoom de esta pestaña. Además, los cambios de zoom de per-tab se restablecen durante la navegación; cuando se navega por una pestaña, las páginas siempre se cargan con sus factores de zoom de per-origin.
Propiedades
MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND
Es la cantidad máxima de veces que se puede llamar a captureVisibleTab por segundo. captureVisibleTab es costoso y no se debe llamar con demasiada frecuencia.
Valor
2
SPLIT_VIEW_ID_NONE
Es un ID que representa la ausencia de una pestaña dividida.
Valor
-1
TAB_ID_NONE
Es un ID que representa la ausencia de una pestaña del navegador.
Valor
-1
TAB_INDEX_NONE
Es un índice que representa la ausencia de un índice de pestaña en una barra de pestañas.
Valor
-1
Métodos
captureVisibleTab()
browser.tabs.captureVisibleTab(
windowId?: number,
options?: ImageDetails,
): Promise<string>
Captura el área visible de la pestaña activa en la ventana especificada. Para llamar a este método, la extensión debe tener el permiso <all_urls> o el permiso activeTab. Además de los sitios a los que las extensiones pueden acceder normalmente, este método permite que las extensiones capturen sitios sensibles que, de lo contrario, estarían restringidos, incluidas las páginas con el esquema chrome:, las páginas de otras extensiones y las URLs de datos. Estos sitios sensibles solo se pueden capturar con el permiso activeTab. Las URLs de archivos solo se pueden capturar si se le otorgó acceso a los archivos a la extensión.
Parámetros
-
windowId
number opcional
Es la ventana de destino. La configuración predeterminada es la ventana actual.
-
opciones
ImageDetails opcional
Muestra
-
Promise<string>
Chrome 88 y versiones posteriores browser.* desde Chrome 148
connect()
browser.tabs.connect(
tabId: number,
connectInfo?: object,
): runtime.Port
Se conecta a las secuencias de comandos de contenido en la pestaña especificada. El evento runtime.onConnect se activa en cada secuencia de comandos de contenido que se ejecuta en la pestaña especificada para la extensión actual. Para obtener más detalles, consulta Mensajería de secuencias de comandos de contenido.
Parámetros
-
tabId
número
-
connectInfo
objeto opcional
-
documentId
string opcional
Chrome 106 y versiones posteriores browser.* desde Chrome 148Abre un puerto a un documento específico identificado por
documentIden lugar de todos los marcos de la pestaña. -
frameId
number opcional
Abre un puerto a un marco específico identificado por
frameIden lugar de todos los marcos de la pestaña. -
nombre
string opcional
Se pasa a onConnect para las secuencias de comandos de contenido que escuchan el evento de conexión.
-
Muestra
-
Es un puerto que se puede usar para comunicarse con las secuencias de comandos de contenido que se ejecutan en la pestaña especificada. El evento
runtime.Portdel puerto se activa si la pestaña se cierra o no existe.
Parámetros
-
createProperties
objeto
-
activo
booleano opcional
Indica si la pestaña debe convertirse en la pestaña activa de la ventana. No afecta si la ventana está enfocada (consulta
windows.update). El valor predeterminado estrue. -
índice
number opcional
Es la posición que debe adoptar la pestaña en la ventana. El valor proporcionado se limita a un valor entre cero y la cantidad de pestañas de la ventana.
-
openerTabId
number opcional
Es el ID de la pestaña que abrió esta pestaña. Si se especifica, la pestaña de apertura debe estar en la misma ventana que la pestaña recién creada.
-
marcada
booleano opcional
Indica si se debe fijar la pestaña. La configuración predeterminada es
false. -
seleccionado
booleano opcional
ObsoletoUsa active.
Indica si la pestaña debe convertirse en la pestaña seleccionada de la ventana. La configuración predeterminada es
true. -
splitWithTabId
number opcional
Chrome 155 y versiones posterioresEs el ID de una pestaña existente con la que se creará una vista dividida. Si se especifica, la pestaña de división debe cumplir con las siguientes condiciones:
- No debe ser una pestaña que ya esté dividida.
- Debe estar en la misma ventana que la pestaña recién creada.
- Si se especifica
windowId, debe ser igual al ID de la ventana de la pestaña de división. - Si se especifica
index, debe ser un índice adyacente a la pestaña de división y afectará el posicionamiento relativo de la pestaña recién creada.
-
url
string opcional
Es la URL a la que se debe navegar inicialmente en la pestaña. Las URLs completamente calificadas deben incluir un esquema (es decir, 'http://www.google.com', no 'www.google.com'). Las URLs relativas se relacionan con la página actual dentro de la extensión. La opción predeterminada es la página Nueva pestaña.
-
windowId
number opcional
Es la ventana en la que se creará la pestaña nueva. La configuración predeterminada es la ventana actual.
-
Muestra
-
Promise<Tab>
Chrome 88 y versiones posteriores browser.* desde Chrome 148
createSplit()
browser.tabs.createSplit(
tabIds: [number, number],
): Promise<number>
Divide dos pestañas existentes en una vista dividida.
Parámetros
-
tabIds
[number, number]
Un array de exactamente dos IDs de pestañas para vincular en una vista dividida. Todas las pestañas deben cumplir con las siguientes condiciones:
Deben ser adyacentes. No deben estar ya en una vista dividida. Deben tener estados
windowId,pinnedygroupIdque coincidan.
Muestra
-
Promise<number>
detectLanguage()
browser.tabs.detectLanguage(
tabId?: number,
): Promise<string>
Detecta el idioma principal del contenido de una pestaña.
Parámetros
-
tabId
number opcional
La configuración predeterminada es la pestaña activa de la ventana actual.
Muestra
-
Promise<string>
Chrome 88 y versiones posteriores browser.* desde Chrome 148
discard()
browser.tabs.discard(
tabId?: number,
): Promise<Tab | undefined>
Descarta una pestaña de la memoria. Las pestañas descartadas siguen visibles en la barra de pestañas y se vuelven a cargar cuando se activan.
Parámetros
-
tabId
number opcional
Es el ID de la pestaña que se descartará. Si se especifica, se descarta la pestaña, a menos que esté activa o ya se haya descartado. Si se omite, el navegador descarta la pestaña menos importante. Esto puede fallar si no hay pestañas descartables.
Muestra
-
Promise<Tab | undefined>
Chrome 88 y versiones posteriores browser.* desde Chrome 148Se resuelve después de que se completa la operación.
Parámetros
-
tabId
número
Es el ID de la pestaña que se duplicará.
Muestra
-
Promise<Tab | undefined>
Chrome 88 y versiones posteriores browser.* desde Chrome 148
get()
browser.tabs.get(
tabId: number,
): Promise<Tab>
Recupera detalles sobre la pestaña especificada.
Parámetros
-
tabId
número
Muestra
-
Promise<Tab>
Chrome 88 y versiones posteriores browser.* desde Chrome 148
getCurrent()
browser.tabs.getCurrent(): Promise<Tab | undefined>
Obtiene la pestaña desde la que se realiza esta llamada de secuencia de comandos. Devuelve undefined si se llama desde un contexto que no es de pestaña (por ejemplo, una página en segundo plano o una vista emergente).
Muestra
-
Promise<Tab | undefined>
Chrome 88 y versiones posteriores browser.* desde Chrome 148
getZoom()
browser.tabs.getZoom(
tabId?: number,
): Promise<number>
Obtiene el factor de zoom actual de una pestaña especificada.
Parámetros
-
tabId
number opcional
Es el ID de la pestaña de la que se obtendrá el factor de zoom actual. El valor predeterminado es la pestaña activa de la ventana actual.
Muestra
-
Promise<number>
Chrome 88 y versiones posteriores browser.* desde Chrome 148Se resuelve con el factor de zoom actual de la pestaña después de que se recuperó.
getZoomSettings()
browser.tabs.getZoomSettings(
tabId?: number,
): Promise<ZoomSettings>
Obtiene la configuración de zoom actual de una pestaña especificada.
Parámetros
-
tabId
number opcional
Es el ID de la pestaña de la que se obtendrá la configuración de zoom actual. El valor predeterminado es la pestaña activa de la ventana actual.
Muestra
-
Promise<ZoomSettings>
Chrome 88 y versiones posteriores browser.* desde Chrome 148Se resuelve con la configuración de zoom actual de la pestaña.
goBack()
browser.tabs.goBack(
tabId?: number,
): Promise<void>
Vuelve a la página anterior, si hay una disponible.
Parámetros
-
tabId
number opcional
Es el ID de la pestaña a la que se debe volver. El valor predeterminado es la pestaña seleccionada de la ventana actual.
Muestra
-
Promise<void>
Chrome 88 y versiones posteriores browser.* desde Chrome 148
goForward()
browser.tabs.goForward(
tabId?: number,
): Promise<void>
Avanza a la página siguiente, si hay una disponible.
Parámetros
-
tabId
number opcional
Es el ID de la pestaña a la que se navegará hacia adelante. De forma predeterminada, es la pestaña seleccionada de la ventana actual.
Muestra
-
Promise<void>
Chrome 88 y versiones posteriores browser.* desde Chrome 148
group()
browser.tabs.group(
options: object,
): Promise<number>
Agrega una o más pestañas a un grupo especificado o, si no se especifica ningún grupo, agrega las pestañas dadas a un grupo recién creado.
Parámetros
-
opciones
objeto
-
createProperties
objeto opcional
Son los parámetros de configuración para crear un grupo. No se puede usar si ya se especificó groupId.
-
windowId
number opcional
La ventana del grupo nuevo. La configuración predeterminada es la ventana actual.
-
-
groupId
number opcional
Es el ID del grupo al que se agregarán las pestañas. Si no se especifica, se creará un grupo nuevo.
-
tabIds
number | [number, ...number[]]
Es el ID de la pestaña o la lista de IDs de pestañas que se agregarán al grupo especificado.
-
Muestra
-
Promise<number>
highlight()
browser.tabs.highlight(
highlightInfo: object,
): Promise<windows.Window>
Destaca las pestañas dadas y se enfoca en la primera del grupo. Parecerá que no hace nada si la pestaña especificada está activa en ese momento.
Parámetros
-
highlightInfo
objeto
-
tabs
number | number[]
Uno o más índices de pestañas para destacar.
-
windowId
number opcional
La ventana que contiene las pestañas.
-
Muestra
-
Promise<windows.Window>
Chrome 88 y versiones posteriores browser.* desde Chrome 148
move()
browser.tabs.move(
tabIds: number | number[],
moveProperties: object,
): Promise<Tab | Tab[]>
Mueve una o más pestañas a una nueva posición dentro de su ventana o a una ventana nueva. Ten en cuenta que las pestañas solo se pueden mover hacia y desde ventanas normales (window.type === "normal").
Parámetros
-
tabIds
number | number[]
Es el ID de la pestaña o la lista de IDs de pestañas que se moverán.
-
moveProperties
objeto
-
índice
número
Es la posición a la que se moverá la ventana. Usa
-1para colocar la pestaña al final de la ventana. -
windowId
number opcional
El valor predeterminado es la ventana en la que se encuentra la pestaña actualmente.
-
query()
browser.tabs.query(
queryInfo: object,
): Promise<Tab[]>
Obtiene todas las pestañas que tienen las propiedades especificadas o todas las pestañas si no se especifican propiedades.
Parámetros
-
queryInfo
objeto
-
activo
booleano opcional
Indica si las pestañas están activas en sus ventanas.
-
Audible
booleano opcional
Chrome 45 y versiones posteriores browser.* desde Chrome 148Indica si las pestañas son audibles.
-
autoDiscardable
booleano opcional
Chrome 54 y versiones posteriores browser.* desde Chrome 148Indica si el navegador puede descartar las pestañas automáticamente cuando los recursos son bajos.
-
currentWindow
booleano opcional
Indica si las pestañas están en la ventana actual.
-
descartado
booleano opcional
Chrome 54 y versiones posteriores browser.* desde Chrome 148Indica si se descartan las pestañas. Una pestaña descartada es aquella cuyo contenido se descargó de la memoria, pero sigue visible en la barra de pestañas. Su contenido se vuelve a cargar la próxima vez que se activa.
-
no responde
booleano opcional
Chrome 132 y versiones posteriores browser.* desde Chrome 148Si las pestañas están congeladas Una pestaña inmovilizada no puede ejecutar tareas, incluidos los controladores de eventos o los temporizadores. Se puede ver en la tira de pestañas y su contenido se carga en la memoria. Se descongela cuando se activa.
-
groupId
number opcional
Chrome 88 y versiones posteriores browser.* desde Chrome 148Es el ID del grupo en el que se encuentran las pestañas o
tabGroups.TAB_GROUP_ID_NONEpara las pestañas sin agrupar. -
destacado
booleano opcional
Indica si las pestañas están destacadas.
-
índice
number opcional
La posición de las pestañas dentro de sus ventanas.
-
lastFocusedWindow
booleano opcional
Indica si las pestañas están en la última ventana enfocada.
-
silenciado
booleano opcional
Chrome 45 y versiones posteriores browser.* desde Chrome 148Indica si las pestañas están silenciadas.
-
marcada
booleano opcional
Indica si las pestañas están fijadas.
-
splitViewId
number opcional
Chrome 140 y versiones posteriores browser.* desde Chrome 148Es el ID de la vista dividida en la que se encuentran las pestañas o
tabs.SPLIT_VIEW_ID_NONEpara las pestañas que no están en una vista dividida. -
estado
TabStatus opcional
Es el estado de carga de la pestaña.
-
título
string opcional
Hacer coincidir los títulos de las páginas con un patrón Esta propiedad se ignora si la extensión no tiene el permiso
"tabs"ni los permisos de host para la página. -
url
string | string[] opcional
Compara las pestañas con uno o más patrones de URL. No se encuentran coincidencias con los identificadores de fragmentos. Esta propiedad se ignora si la extensión no tiene el permiso
"tabs"ni los permisos de host para la página. -
windowId
number opcional
Es el ID de la ventana superior o
windows.WINDOW_ID_CURRENTpara la ventana actual. -
windowType
WindowType opcional
Es el tipo de ventana en la que se encuentran las pestañas.
-
Muestra
-
Promise<Tab[]>
Chrome 88 y versiones posteriores browser.* desde Chrome 148
reload()
browser.tabs.reload(
tabId?: number,
reloadProperties?: object,
): Promise<void>
Volver a cargar una pestaña
Parámetros
-
tabId
number opcional
Es el ID de la pestaña que se volverá a cargar. De forma predeterminada, es la pestaña seleccionada de la ventana actual.
-
reloadProperties
objeto opcional
-
bypassCache
booleano opcional
Indica si se debe omitir el almacenamiento en caché local. La configuración predeterminada es
false.
-
Muestra
-
Promise<void>
Chrome 88 y versiones posteriores browser.* desde Chrome 148
remove()
browser.tabs.remove(
tabIds: number | number[],
): Promise<void>
Cierra una o más pestañas.
Parámetros
-
tabIds
number | number[]
Es el ID de la pestaña o la lista de IDs de pestañas que se cerrarán.
Muestra
-
Promise<void>
Chrome 88 y versiones posteriores browser.* desde Chrome 148
sendMessage()
browser.tabs.sendMessage(
tabId: number,
message: any,
options?: object,
): Promise<any>
Envía un solo mensaje a las secuencias de comandos de contenido en la pestaña especificada. El evento runtime.onMessage se activa en cada secuencia de comandos de contenido que se ejecuta en la pestaña especificada para la extensión actual.
Parámetros
-
tabId
número
-
mensaje
cualquiera
Es el mensaje que se enviará. Este mensaje debe ser un objeto que se pueda convertir en JSON.
-
opciones
objeto opcional
-
documentId
string opcional
Chrome 106 y versiones posteriores browser.* desde Chrome 148Envía un mensaje a un documento específico identificado por
documentIden lugar de todos los marcos de la pestaña. -
frameId
number opcional
Envía un mensaje a un marco específico identificado por
frameIden lugar de a todos los marcos de la pestaña.
-
Muestra
-
Promise<any>
Chrome 99 y versiones posteriores browser.* desde Chrome 148Es una promesa que se resuelve con la respuesta de la secuencia de comandos de contenido. Si se produce un error mientras se establece la conexión con la pestaña especificada, se rechazará la promesa.
setZoom()
browser.tabs.setZoom(
tabId?: number,
zoomFactor: number,
): Promise<void>
Aplica zoom a una pestaña especificada.
Parámetros
-
tabId
number opcional
Es el ID de la pestaña a la que se aplicará el zoom. El valor predeterminado es la pestaña activa de la ventana actual.
-
zoomFactor
número
Es el nuevo factor de zoom. Un valor de
0establece la pestaña en su factor de zoom predeterminado actual. Los valores superiores a0especifican un factor de zoom (posiblemente no predeterminado) para la pestaña.
Muestra
-
Promise<void>
Chrome 88 y versiones posteriores browser.* desde Chrome 148Se resuelve después de que se cambia el factor de zoom.
setZoomSettings()
browser.tabs.setZoomSettings(
tabId?: number,
zoomSettings: ZoomSettings,
): Promise<void>
Establece la configuración de zoom para una pestaña especificada, que define cómo se manejan los cambios de zoom. Estos parámetros de configuración se restablecen a los valores predeterminados cuando navegas por la pestaña.
Parámetros
-
tabId
number opcional
Es el ID de la pestaña para la que se cambiará la configuración de zoom. El valor predeterminado es la pestaña activa de la ventana actual.
-
zoomSettings
Define cómo se manejan los cambios de zoom y en qué alcance.
Muestra
-
Promise<void>
Chrome 88 y versiones posteriores browser.* desde Chrome 148Se resuelve después de que se cambia la configuración de zoom.
ungroup()
browser.tabs.ungroup(
tabIds: number | [number, ...number[]],
): Promise<void>
Quita una o más pestañas de sus respectivos grupos. Si algún grupo queda vacío, se borra.
Parámetros
-
tabIds
number | [number, ...number[]]
Es el ID de la pestaña o la lista de IDs de pestañas que se quitarán de sus respectivos grupos.
Muestra
-
Promise<void>
unsplit()
browser.tabs.unsplit(
splitViewId: number,
): Promise<void>
Separa las pestañas de una vista dividida en pestañas independientes.
Parámetros
-
splitViewId
número
Es el ID de la vista dividida que se separará.
Muestra
-
Promise<void>
update()
browser.tabs.update(
tabId?: number,
updateProperties: object,
): Promise<Tab | undefined>
Modifica las propiedades de una pestaña. Las propiedades que no se especifican en updateProperties no se modifican.
Parámetros
-
tabId
number opcional
El valor predeterminado es la pestaña seleccionada de la ventana actual.
-
updateProperties
objeto
-
activo
booleano opcional
Indica si la pestaña debe estar activa. No afecta si la ventana está enfocada (consulta
windows.update). -
autoDiscardable
booleano opcional
Chrome 54 y versiones posteriores browser.* desde Chrome 148Indica si el navegador debe descartar la pestaña automáticamente cuando los recursos son bajos.
-
destacado
booleano opcional
Agrega o quita la pestaña de la selección actual.
-
silenciado
booleano opcional
Chrome 45 y versiones posteriores browser.* desde Chrome 148Indica si se debe silenciar la pestaña.
-
openerTabId
number opcional
Es el ID de la pestaña que abrió esta pestaña. Si se especifica, la pestaña de apertura debe estar en la misma ventana que esta pestaña.
-
marcada
booleano opcional
Indica si se debe fijar la pestaña.
-
seleccionado
booleano opcional
ObsoletoUsa highlighted.
Indica si se debe seleccionar la pestaña.
-
url
string opcional
Es la URL a la que se debe dirigir la pestaña. No se admiten las URLs de JavaScript. En su lugar, usa
scripting.executeScript.
-
Muestra
-
Promise<Tab | undefined>
Chrome 88 y versiones posteriores browser.* desde Chrome 148
Eventos
onActivated
browser.tabs.onActivated.addListener(
callback: function,
)
Se activa cuando cambia la pestaña activa en una ventana. Ten en cuenta que es posible que la URL de la pestaña no se establezca en el momento en que se activó este evento, pero puedes escuchar los eventos onUpdated para recibir una notificación cuando se establezca una URL.
Parámetros
-
callback
función
El parámetro
callbackse ve de la siguiente manera:(activeInfo: object) => void
-
activeInfo
objeto
-
tabId
número
Es el ID de la pestaña que se activó.
-
windowId
número
Es el ID de la ventana en la que cambió la pestaña activa.
-
-
onAttached
browser.tabs.onAttached.addListener(
callback: function,
)
Se activa cuando se adjunta una pestaña a una ventana, por ejemplo, porque se movió entre ventanas.
Parámetros
-
callback
función
El parámetro
callbackse ve de la siguiente manera:(tabId: number, attachInfo: object) => void
-
tabId
número
-
attachInfo
objeto
-
newPosition
número
-
newWindowId
número
-
-
onCreated
browser.tabs.onCreated.addListener(
callback: function,
)
Se activa cuando se crea una pestaña. Ten en cuenta que es posible que la URL de la pestaña y la pertenencia al grupo de pestañas no se establezcan en el momento en que se activa este evento, pero puedes escuchar los eventos onUpdated para recibir una notificación cuando se establezca una URL o se agregue la pestaña a un grupo de pestañas.
Parámetros
-
callback
función
El parámetro
callbackse ve de la siguiente manera:(tab: Tab) => void
-
tabulación
-
onDetached
browser.tabs.onDetached.addListener(
callback: function,
)
Se activa cuando se separa una pestaña de una ventana, por ejemplo, porque se movió entre ventanas.
Parámetros
-
callback
función
El parámetro
callbackse ve de la siguiente manera:(tabId: number, detachInfo: object) => void
-
tabId
número
-
detachInfo
objeto
-
oldPosition
número
-
oldWindowId
número
-
-
onHighlighted
browser.tabs.onHighlighted.addListener(
callback: function,
)
Se activa cuando cambian las pestañas destacadas o seleccionadas en una ventana.
Parámetros
-
callback
función
El parámetro
callbackse ve de la siguiente manera:(highlightInfo: object) => void
-
highlightInfo
objeto
-
tabIds
number[]
Todas las pestañas destacadas de la ventana.
-
windowId
número
La ventana cuyas pestañas cambiaron.
-
-
onMoved
browser.tabs.onMoved.addListener(
callback: function,
)
Se activa cuando se mueve una pestaña dentro de una ventana. Solo se activa un evento de movimiento, que representa la pestaña que el usuario movió directamente. No se activan eventos de movimiento para las otras pestañas que deben moverse en respuesta a la pestaña que se movió manualmente. Este evento no se activa cuando se mueve una pestaña entre ventanas. Para obtener más detalles, consulta tabs.onDetached.
Parámetros
-
callback
función
El parámetro
callbackse ve de la siguiente manera:(tabId: number, moveInfo: object) => void
-
tabId
número
-
moveInfo
objeto
-
fromIndex
número
-
toIndex
número
-
windowId
número
-
-
onRemoved
browser.tabs.onRemoved.addListener(
callback: function,
)
Se activa cuando se cierra una pestaña.
Parámetros
-
callback
función
El parámetro
callbackse ve de la siguiente manera:(tabId: number, removeInfo: object) => void
-
tabId
número
-
removeInfo
objeto
-
isWindowClosing
booleano
Es verdadero cuando la pestaña se cerró porque se cerró su ventana superior.
-
windowId
número
La ventana cuya pestaña se cerró.
-
-
onReplaced
browser.tabs.onReplaced.addListener(
callback: function,
)
Se activa cuando una pestaña se reemplaza por otra debido a la renderización previa o instantánea.
Parámetros
-
callback
función
El parámetro
callbackse ve de la siguiente manera:(addedTabId: number, removedTabId: number) => void
-
addedTabId
número
-
removedTabId
número
-
onUpdated
browser.tabs.onUpdated.addListener(
callback: function,
)
Se activa cuando se actualiza una pestaña.
Parámetros
-
callback
función
El parámetro
callbackse ve de la siguiente manera:(tabId: number, changeInfo: object, tab: Tab) => void
-
tabId
número
-
changeInfo
objeto
-
Audible
booleano opcional
Chrome 45 y versiones posteriores browser.* desde Chrome 148Es el nuevo estado audible de la pestaña.
-
autoDiscardable
booleano opcional
Chrome 54 y versiones posteriores browser.* desde Chrome 148Es el nuevo estado de descarte automático de la pestaña.
-
descartado
booleano opcional
Chrome 54 y versiones posteriores browser.* desde Chrome 148Es el nuevo estado descartado de la pestaña.
-
favIconUrl
string opcional
Es la nueva URL del ícono de página de la pestaña.
-
no responde
booleano opcional
Chrome 132 y versiones posteriores browser.* desde Chrome 148Es el nuevo estado de inactividad de la pestaña.
-
groupId
number opcional
Chrome 88 y versiones posteriores browser.* desde Chrome 148Es el grupo nuevo de la pestaña.
-
mutedInfo
MutedInfo opcional
Chrome 46 y versiones posteriores browser.* desde Chrome 148El nuevo estado de silencio de la pestaña y el motivo del cambio.
-
marcada
booleano opcional
Es el nuevo estado fijado de la pestaña.
-
splitViewId
number opcional
Chrome 140 y versiones posteriores browser.* desde Chrome 148La nueva vista dividida de la pestaña.
-
estado
TabStatus opcional
Es el estado de carga de la pestaña.
-
título
string opcional
Chrome 48 y versiones posteriores browser.* desde Chrome 148Es el título nuevo de la pestaña.
-
url
string opcional
La URL de la pestaña si cambió.
-
-
tabulación
-
onZoomChange
browser.tabs.onZoomChange.addListener(
callback: function,
)
Se activa cuando se acerca una pestaña.
Parámetros
-
callback
función
El parámetro
callbackse ve de la siguiente manera:(ZoomChangeInfo: object) => void
-
ZoomChangeInfo
objeto
-
newZoomFactor
número
-
oldZoomFactor
número
-
tabId
número
-
zoomSettings
-
-