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.
Descripción general
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 su uso. Por ejemplo: crear una pestaña nueva, volver a cargar una pestaña, navegar a otra URL, etcétera.
Hay tres permisos que los desarrolladores deben tener en cuenta cuando trabajan con la API de Tabs.
- El permiso de "pestañas"
- Este permiso no otorga acceso al espacio de nombres
chrome.tabs
. En su lugar, otorga a una extensión la capacidad de llamar atabs.query()
en cuatro propiedades sensibles en instancias detabs.Tab
:url
,pendingUrl
,title
yfavIconUrl
. - Permisos de host Los
- permisos de host permiten que una extensión lea y consulte las cuatro propiedades
tabs.Tab
sensibles de una pestaña coincidente. También pueden interactuar directamente con las pestañas coincidentes mediante métodos comotabs.captureVisibleTab()
,tabs.executeScript()
,tabs.insertCSS()
ytabs.removeCSS()
. - El permiso "activeTab"
activeTab
otorga 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,activeTab
no activa ninguna advertencia.
Manifiesto
Los siguientes son ejemplos de cómo declarar cada permiso en el manifest:
{
"name": "My extension",
...
"permissions": [
"tabs"
],
...
}
{
"name": "My extension",
...
"host_permissions": [
"http://*/*",
"https://*/*"
],
...
}
{
"name": "My extension",
...
"permissions": [
"activeTab"
],
...
}
Casos de uso
En las siguientes secciones, se muestran algunos casos de uso comunes.
Cómo 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 integración en una pestaña nueva cuando se instala la extensión. En el siguiente ejemplo, se muestra cómo hacerlo.
background.js:
chrome.runtime.onInstalled.addListener(({reason}) => {
if (reason === 'install') {
chrome.tabs.create({
url: "onboarding.html"
});
}
});
Cómo 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 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);
});
}
Silencia la pestaña especificada
En este ejemplo, se muestra cómo una extensión puede activar o desactivar el estado silenciado de una pestaña determinada.
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" }`);
});
}
Mover la pestaña actual a la primera posición cuando se hace clic
En este ejemplo, se muestra cómo mover una pestaña mientras se está arrastrando o no. Si bien este ejemplo usa chrome.tabs.move
, puedes usar el mismo patrón de espera para otras llamadas que modifiquen las pestañas mientras se está arrastrando.
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.");
}
});
}
Pasa un mensaje a la secuencia de comandos de contenido de una pestaña seleccionada
En este ejemplo, se muestra cómo el trabajador de servicio de una extensión puede comunicarse con secuencias de comandos de contenido en pestañas del navegador específicas con 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.
}
Ejemplos de extensiones
Para ver más demostraciones de extensiones de la API de Tabs, explora cualquiera de las siguientes opciones:
Tipos
MutedInfo
El estado silenciado de la pestaña y el motivo del último cambio de estado
Propiedades
-
extensionId
cadena opcional
El ID de la extensión que cambió el estado de silenciamiento. No se establece si una extensión no fue el motivo por el que se cambió el estado de silenciado por última vez.
-
silenciado
booleano
Indica si la pestaña está silenciada (no se puede reproducir sonido). Es posible que la pestaña esté silenciada incluso si no se reprodujo o no está reproduciendo sonido. Equivale a si se muestra el indicador de audio "silenciado".
-
Reason
MutedInfoReason opcional
El motivo por el que se activó o se desactivó el sonido de la pestaña. No se establece si el estado de silenciamiento de la pestaña nunca se cambió.
MutedInfoReason
Un evento que provocó un cambio de estado silenciado.
Enum
"user"
Una acción de entrada del usuario estableció el estado silenciado.
"capture"
Se inició la captura de pestañas, lo que forzó un cambio de estado silenciado.
"extension"
Una extensión, identificada por el campo extensionId, establece 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 posterioresSi la pestaña emitió 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 posterioresIndica si el navegador puede descartar automáticamente la pestaña cuando hay pocos recursos.
-
descartado
booleano
Chrome 54 y versiones posterioresIndica si se descarta la pestaña. Una pestaña descartada es aquella cuyo contenido se descargó de la memoria, pero aún es visible en la barra de pestañas. Su contenido se vuelve a cargar la próxima vez que se activa.
-
favIconUrl
cadena opcional
Es la URL del ícono de página de la pestaña. Esta propiedad solo está presente si el manifiesto de la extensión incluye el permiso
"tabs"
. También puede ser una cadena vacía si se está cargando la pestaña. -
congelado
booleano
PendienteIndica 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 barra de pestañas y su contenido se carga en la memoria. Se desbloquea cuando se activa.
-
groupId
número
Chrome 88 y versiones posterioresEs el ID del grupo al que pertenece la pestaña.
-
alto
número opcional
Es la altura de la pestaña en píxeles.
-
destacado
booleano
Indica si la pestaña está destacada.
-
id
número 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 extranjeras con la API de
sessions
, en cuyo caso puede estar presente un ID de sesión. El ID de pestaña también se puede establecer enchrome.tabs.TAB_ID_NONE
para las apps y las ventanas de herramientas para desarrolladores. -
incógnito
booleano
Indica si la pestaña está en una ventana de incógnito.
-
índice
número
El índice basado en cero de la pestaña dentro de su ventana.
-
lastAccessed
número
Chrome 121 y versiones posterioresLa última vez que se accedió a la pestaña como la cantidad de milisegundos desde la época.
-
mutedInfo
MutedInfo opcional
Chrome 46 y versiones posterioresEl estado silenciado de la pestaña y el motivo del último cambio de estado
-
openerTabId
número opcional
El ID de la pestaña que abrió esta pestaña, si corresponde. Esta propiedad solo está presente si la pestaña del activador aún existe.
-
pendingUrl
cadena opcional
Chrome 79 y versiones posterioresLa URL a la que navega la pestaña, antes de que se confirme. Esta propiedad solo está presente si el manifiesto de la extensión incluye el permiso
"tabs"
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
cadena opcional
Es el ID de sesión que se usa para identificar de forma inequívoca una pestaña obtenida de la API de
sessions
. -
estado
TabStatus opcional
Es el estado de carga de la pestaña.
-
título
cadena opcional
Es el título de la pestaña. Esta propiedad solo está presente si el manifiesto de la extensión incluye el permiso
"tabs"
. -
url
cadena opcional
Es la última URL confirmada del marco principal de la pestaña. Esta propiedad solo está presente si el manifiesto de la extensión incluye el permiso
"tabs"
y puede ser una cadena vacía si la pestaña aún no se confirmó. Consulta tambiénTab.pendingUrl
. -
ancho
número 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 controlan los cambios de zoom en una pestaña y en qué alcance.
Propiedades
-
defaultZoomFactor
número opcional
Chrome 43 y versiones posterioresSe usa para mostrar el nivel de zoom predeterminado de la pestaña actual en las llamadas a tabs.getZoomSettings.
-
Standard
ZoomSettingsMode opcional
Define cómo se controlan 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-origin
cuando se está en el modoautomatic
yper-tab
en caso contrario.
ZoomSettingsMode
Define cómo se controlan los cambios de zoom, es decir, qué entidad es responsable del escalamiento real de la página. El valor predeterminado es automatic
.
Enum
"automático"
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á despachando, y es responsabilidad de la extensión detectar este evento y escalar la página de forma manual. Este modo no admite el zoom per-origin
y, por lo tanto, ignora el parámetro de configuración de zoom 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 cambios de zoom que se hayan intentado.
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 está en el modo automatic
y per-tab
en caso contrario.
Enum
"Por origen"
Los cambios de zoom persisten en el origen de la página en la que se aplicó el zoom, es decir, todas las demás pestañas que se navegaron a ese mismo origen también tienen 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 en el mismo origen, todas se ajustan al mismo factor de zoom. El alcance per-origin
solo está disponible en el modo automatic
.
“Por pestaña”
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. Navegar por una pestaña siempre carga páginas con sus factores de zoom 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
TAB_ID_NONE
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 un tab_strip.
Valor
-1
Métodos
captureVisibleTab()
chrome.tabs.captureVisibleTab(
windowId?: number,
options?: ImageDetails,
callback?: function,
)
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 de forma normal, este método permite que las extensiones capturen sitios sensibles que, de otro modo, están restringidos, incluidas las páginas chrome:-scheme, las páginas de otras extensiones y las URLs de data:. Estos sitios sensibles solo se pueden capturar con el permiso activeTab. Las URLs de los archivos solo se pueden capturar si se le otorgó acceso a los archivos a la extensión.
Parámetros
-
windowId
número opcional
La ventana de destino El valor predeterminado es la ventana actual.
-
opciones
ImageDetails opcional
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(dataUrl: string) => void
-
dataUrl
string
Es una URL de datos que codifica una imagen del área visible de la pestaña capturada. Se puede asignar a la propiedad "src" de un elemento
img
HTML para su visualización.
-
Muestra
-
Promise<string>
Chrome 88 y versiones posterioresLas promesas solo se admiten para Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
connect()
chrome.tabs.connect(
tabId: number,
connectInfo?: object,
)
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 Mensajes de secuencias de comandos de contenido.
Parámetros
-
tabId
número
-
connectInfo
objeto opcional
-
documentId
cadena opcional
Chrome 106 y versiones posterioresAbre un puerto a un documento específico identificado por
documentId
en lugar de todos los marcos de la pestaña. -
frameId
número opcional
Abre un puerto a un fotograma específico identificado por
frameId
en lugar de todos los fotogramas de la pestaña. -
nombre
cadena 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.Port
del puerto se activa si la pestaña se cierra o no existe.
create()
chrome.tabs.create(
createProperties: object,
callback?: function,
)
Crea una pestaña nueva.
Parámetros
-
createProperties
objeto
-
activo
booleano opcional
Indica si la pestaña debe convertirse en la pestaña activa en la ventana. No afecta si la ventana está enfocada (consulta
windows.update
). El valor predeterminado estrue
. -
índice
número opcional
Es la posición que debe ocupar la pestaña en la ventana. El valor proporcionado se limita entre cero y la cantidad de pestañas en la ventana.
-
openerTabId
número opcional
El ID de la pestaña que abrió esta pestaña. Si se especifica, la pestaña del activador debe estar en la misma ventana que la pestaña recién creada.
-
marcada
booleano opcional
Indica si la pestaña se debe fijar. La configuración predeterminada es
false
. -
seleccionado
booleano opcional
ObsoletoUsa activo.
Indica si la pestaña debe convertirse en la pestaña seleccionada en la ventana. La configuración predeterminada es
true
. -
url
cadena 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 refieren a la página actual dentro de la extensión. La página Nueva pestaña es la opción predeterminada.
-
windowId
número opcional
La ventana en la que se creará la pestaña nueva. El valor predeterminado es la ventana actual.
-
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(tab: Tab) => void
-
tab
La pestaña creada.
-
Muestra
-
Promise<Tab>
Chrome 88 y versiones posterioresLas promesas solo se admiten para Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
detectLanguage()
chrome.tabs.detectLanguage(
tabId?: number,
callback?: function,
)
Detecta el idioma principal del contenido de una pestaña.
Parámetros
-
tabId
número opcional
El valor predeterminado es la pestaña activa de la ventana actual.
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(language: string) => void
-
idioma
string
Un código de idioma ISO, como
en
ofr
. Para obtener una lista completa de los idiomas compatibles con este método, consulta kLanguageInfoTable. Se verifican las columnas de la segunda a la cuarta y se muestra el primer valor no NULL, excepto para el chino simplificado, para el que se muestrazh-CN
. Para un idioma desconocido o no definido, se muestraund
.
-
Muestra
-
Promise<string>
Chrome 88 y versiones posterioresLas promesas solo se admiten para Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
discard()
chrome.tabs.discard(
tabId?: number,
callback?: function,
)
Elimina 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
número opcional
Es el ID de la pestaña que se descartará. Si se especifica, la pestaña se descarta, 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 existen pestañas desechables.
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(tab?: Tab) => void
-
tab
Tab opcional
La pestaña descartada, si se descartó correctamente; sin definir de lo contrario
-
Muestra
-
Promise<Tab | undefined>
Chrome 88 y versiones posterioresLas promesas solo se admiten para Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
duplicate()
chrome.tabs.duplicate(
tabId: number,
callback?: function,
)
Duplica una pestaña.
Parámetros
-
tabId
número
Es el ID de la pestaña que se duplicará.
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(tab?: Tab) => void
Muestra
-
Promise<Tab | undefined>
Chrome 88 y versiones posterioresLas promesas solo se admiten para Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
executeScript()
chrome.tabs.executeScript(
tabId?: number,
details: InjectDetails,
callback?: function,
)
Se reemplazó por scripting.executeScript
en Manifest V3.
Inserta código JavaScript en una página. Para obtener más información, consulta la sección Inyección programática del documento de secuencias de comandos de contenido.
Parámetros
-
tabId
número opcional
Es el ID de la pestaña en la que se ejecutará la secuencia de comandos. El valor predeterminado es la pestaña activa de la ventana actual.
-
detalles
Detalles de la secuencia de comandos que se ejecutará. Se debe configurar el código o la propiedad del archivo, pero no ambos al mismo tiempo.
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(result?: any[]) => void
-
resultado
any[] opcional
El resultado de la secuencia de comandos en cada fotograma insertado.
-
Muestra
-
Promise<any[] | undefined>
Chrome 88 y versiones posterioresLas promesas solo se admiten para Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
get()
chrome.tabs.get(
tabId: number,
callback?: function,
)
Recupera detalles sobre la pestaña especificada.
Parámetros
-
tabId
número
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(tab: Tab) => void
-
tab
-
Muestra
-
Promise<Tab>
Chrome 88 y versiones posterioresLas promesas solo se admiten para Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
getAllInWindow()
chrome.tabs.getAllInWindow(
windowId?: number,
callback?: function,
)
Usa tabs.query
{windowId: windowId}
.
Obtiene detalles sobre todas las pestañas de la ventana especificada.
Parámetros
-
windowId
número opcional
El valor predeterminado es la ventana actual.
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(tabs: Tab[]) => void
-
pestañas
Tab[]
-
Muestra
-
Promise<Tab[]>
Chrome 88 y versiones posterioresLas promesas solo se admiten para Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
getCurrent()
chrome.tabs.getCurrent(
callback?: function,
)
Obtiene la pestaña desde la que se realiza esta llamada de secuencia de comandos. Muestra 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).
Parámetros
Muestra
-
Promise<Tab | undefined>
Chrome 88 y versiones posterioresLas promesas solo se admiten para Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
getSelected()
chrome.tabs.getSelected(
windowId?: number,
callback?: function,
)
Usa tabs.query
{active: true}
.
Obtiene la pestaña seleccionada en la ventana especificada.
Parámetros
-
windowId
número opcional
El valor predeterminado es la ventana actual.
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(tab: Tab) => void
-
tab
-
Muestra
-
Promise<Tab>
Chrome 88 y versiones posterioresLas promesas solo se admiten para Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
getZoom()
chrome.tabs.getZoom(
tabId?: number,
callback?: function,
)
Obtiene el factor de zoom actual de una pestaña especificada.
Parámetros
-
tabId
número opcional
Es el ID de la pestaña de la que se obtiene el factor de zoom actual. El valor predeterminado es la pestaña activa de la ventana actual.
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(zoomFactor: number) => void
-
zoomFactor
número
Es el factor de zoom actual de la pestaña.
-
Muestra
-
Promise<number>
Chrome 88 y versiones posterioresLas promesas solo se admiten para Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
getZoomSettings()
chrome.tabs.getZoomSettings(
tabId?: number,
callback?: function,
)
Obtiene la configuración de zoom actual de una pestaña especificada.
Parámetros
-
tabId
número opcional
Es el ID de la pestaña de la que se obtiene la configuración de zoom actual. El valor predeterminado es la pestaña activa de la ventana actual.
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(zoomSettings: ZoomSettings) => void
-
zoomSettings
Es la configuración de zoom actual de la pestaña.
-
Muestra
-
Promise<ZoomSettings>
Chrome 88 y versiones posterioresLas promesas solo se admiten para Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
goBack()
chrome.tabs.goBack(
tabId?: number,
callback?: function,
)
Volver a la página anterior, si hay una disponible
Parámetros
-
tabId
número 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.
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:() => void
Muestra
-
Promise<void>
Chrome 88 y versiones posterioresLas promesas solo se admiten para Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
goForward()
chrome.tabs.goForward(
tabId?: number,
callback?: function,
)
Ve a la página siguiente, si hay una disponible.
Parámetros
-
tabId
número opcional
Es el ID de la pestaña a la que se debe navegar. El valor predeterminado es la pestaña seleccionada de la ventana actual.
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:() => void
Muestra
-
Promise<void>
Chrome 88 y versiones posterioresLas promesas solo se admiten para Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
group()
chrome.tabs.group(
options: object,
callback?: function,
)
Agrega una o más pestañas a un grupo especificado o, si no se especifica ningún grupo, agrega las pestañas determinadas a un grupo recién creado.
Parámetros
-
opciones
objeto
-
createProperties
objeto opcional
Parámetros de configuración para crear un grupo No se puede usar si ya se especificó groupId.
-
windowId
número opcional
La ventana del grupo nuevo. El valor predeterminado es la ventana actual.
-
-
groupId
número opcional
Es el ID del grupo al que se agregarán las pestañas. Si no se especifica, se creará un grupo nuevo.
-
tabIds
número | [número, ...número[]]
El ID de la pestaña o la lista de IDs de pestañas que se agregarán al grupo especificado.
-
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(groupId: number) => void
-
groupId
número
El ID del grupo al que se agregaron las pestañas.
-
Muestra
-
Promise<number>
Las promesas solo se admiten para Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
highlight()
chrome.tabs.highlight(
highlightInfo: object,
callback?: function,
)
Destaca las pestañas determinadas y se enfoca en la primera del grupo. No hará nada si la pestaña especificada está activa actualmente.
Parámetros
-
highlightInfo
objeto
-
pestañas
número | número[]
Uno o más índices de tabulación para destacar.
-
windowId
número opcional
La ventana que contiene las pestañas.
-
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(window: Window) => void
-
ventana
Contiene detalles sobre la ventana cuyas pestañas se destacaron.
-
Muestra
-
Promise<windows.Window>
Chrome 88 y versiones posterioresLas promesas solo se admiten para Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
insertCSS()
chrome.tabs.insertCSS(
tabId?: number,
details: InjectDetails,
callback?: function,
)
Se reemplazó por scripting.insertCSS
en Manifest V3.
Inserta CSS en una página. Los estilos insertados con este método se pueden quitar con scripting.removeCSS
. Para obtener más información, consulta la sección Inyección programática del documento de secuencias de comandos de contenido.
Parámetros
-
tabId
número opcional
Es el ID de la pestaña en la que se inserta el CSS. El valor predeterminado es la pestaña activa de la ventana actual.
-
detalles
Detalles del texto CSS que se insertará. Se debe configurar el código o la propiedad del archivo, pero no ambos al mismo tiempo.
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:() => void
Muestra
-
Promise<void>
Chrome 88 y versiones posterioresLas promesas solo se admiten para Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
move()
chrome.tabs.move(
tabIds: number | number[],
moveProperties: object,
callback?: function,
)
Mueve una o más pestañas a una posición nueva dentro de la 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
número | número[]
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
-1
para colocar la pestaña al final de la ventana. -
windowId
número opcional
El valor predeterminado es la ventana en la que se encuentra la pestaña.
-
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(tabs: Tab | Tab[]) => void
Muestra
-
Chrome 88 y versiones posteriores
Las promesas solo se admiten para Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
query()
chrome.tabs.query(
queryInfo: object,
callback?: function,
)
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 posterioresIndica si las pestañas son audibles.
-
autoDiscardable
booleano opcional
Chrome 54 y versiones posterioresIndica si el navegador puede descartar automáticamente las pestañas cuando hay pocos recursos.
-
currentWindow
booleano opcional
Si las pestañas están en la ventana actual
-
descartado
booleano opcional
Chrome 54 y versiones posterioresIndica si se descartan las pestañas. Una pestaña descartada es aquella cuyo contenido se descargó de la memoria, pero aún es visible en la barra de pestañas. Su contenido se vuelve a cargar la próxima vez que se activa.
-
congelado
booleano opcional
PendienteIndica si las pestañas están inmovilizadas. Una pestaña inmovilizada no puede ejecutar tareas, incluidos los controladores de eventos o los temporizadores. Se puede ver en la barra de pestañas y su contenido se carga en la memoria. Se desbloquea cuando se activa.
-
groupId
número opcional
Chrome 88 y versiones posterioresEl ID del grupo en el que se encuentran las pestañas o
tabGroups.TAB_GROUP_ID_NONE
para las pestañas no agrupadas. -
destacado
booleano opcional
Si las pestañas están destacadas.
-
índice
número 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 posterioresIndica si las pestañas están silenciadas.
-
marcada
booleano opcional
Si las pestañas están fijadas
-
estado
TabStatus opcional
Es el estado de carga de la pestaña.
-
título
cadena opcional
Haz 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"
. -
url
cadena | cadena[] opcional
Haz coincidir las pestañas con uno o más patrones de URL. Los identificadores de fragmentos no coinciden. Esta propiedad se ignora si la extensión no tiene el permiso
"tabs"
. -
windowId
número opcional
El ID de la ventana superior o
windows.WINDOW_ID_CURRENT
para la ventana actual. -
windowType
WindowType opcional
Es el tipo de ventana en la que se encuentran las pestañas.
-
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(result: Tab[]) => void
-
resultado
Tab[]
-
Muestra
-
Promise<Tab[]>
Chrome 88 y versiones posterioresLas promesas solo se admiten para Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
reload()
chrome.tabs.reload(
tabId?: number,
reloadProperties?: object,
callback?: function,
)
Vuelve a cargar una pestaña.
Parámetros
-
tabId
número opcional
Es el ID de la pestaña que se volverá a cargar. El valor predeterminado es la pestaña seleccionada de la ventana actual.
-
reloadProperties
objeto opcional
-
bypassCache
booleano opcional
Si se omite el almacenamiento en caché local. La configuración predeterminada es
false
.
-
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:() => void
Muestra
-
Promise<void>
Chrome 88 y versiones posterioresLas promesas solo se admiten para Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
remove()
chrome.tabs.remove(
tabIds: number | number[],
callback?: function,
)
Cierra una o más pestañas.
Parámetros
-
tabIds
número | número[]
El ID de la pestaña o la lista de IDs de pestañas que se cerrarán.
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:() => void
Muestra
-
Promise<void>
Chrome 88 y versiones posterioresLas promesas solo se admiten para Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
removeCSS()
chrome.tabs.removeCSS(
tabId?: number,
details: DeleteInjectionDetails,
callback?: function,
)
Se reemplazó por scripting.removeCSS
en Manifest V3.
Quita de una página el CSS que se inyectó anteriormente con una llamada a scripting.insertCSS
.
Parámetros
-
tabId
número opcional
Es el ID de la pestaña de la que se quitará el CSS. El valor predeterminado es la pestaña activa de la ventana actual.
-
detalles
Detalles del texto CSS que se quitará. Se debe configurar el código o la propiedad del archivo, pero no ambos al mismo tiempo.
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:() => void
Muestra
-
Promise<void>
Chrome 88 y versiones posterioresLas promesas solo se admiten para Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
sendMessage()
chrome.tabs.sendMessage(
tabId: number,
message: any,
options?: object,
callback?: function,
)
Envía un solo mensaje a las secuencias de comandos de contenido en la pestaña especificada, con una devolución de llamada opcional para ejecutar cuando se devuelve una respuesta. 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
El mensaje que se enviará. Este mensaje debe ser un objeto que se pueda convertir a JSON.
-
opciones
objeto opcional
-
documentId
cadena opcional
Chrome 106 y versiones posterioresEnvía un mensaje a un documento específico identificado por
documentId
en lugar de a todos los marcos de la pestaña. -
frameId
número opcional
Envía un mensaje a un fotograma específico identificado por
frameId
en lugar de a todos los fotogramas de la pestaña.
-
-
callback
función opcional
Chrome 99 y versiones posterioresEl parámetro
callback
se ve de la siguiente manera:(response: any) => void
-
respuesta
cualquiera
Es el objeto de respuesta JSON que envía el controlador del mensaje. Si se produce un error mientras se conecta a la pestaña especificada, se llama a la devolución de llamada sin argumentos y
runtime.lastError
se establece en el mensaje de error.
-
Muestra
-
Promise<any>
Chrome 99 y versiones posterioresLas promesas solo se admiten para Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
sendRequest()
chrome.tabs.sendRequest(
tabId: number,
request: any,
callback?: function,
)
Usa runtime.sendMessage
.
Envía una sola solicitud a las secuencias de comandos de contenido en la pestaña especificada, con una devolución de llamada opcional para ejecutar cuando se devuelve una respuesta. El evento extension.onRequest
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
-
request
cualquiera
-
callback
función opcional
Chrome 99 y versiones posterioresEl parámetro
callback
se ve de la siguiente manera:(response: any) => void
-
respuesta
cualquiera
Es el objeto de respuesta JSON que envía el controlador de la solicitud. Si se produce un error mientras se conecta a la pestaña especificada, se llama a la devolución de llamada sin argumentos y
runtime.lastError
se establece en el mensaje de error.
-
Muestra
-
Promise<any>
Chrome 99 y versiones posterioresLas promesas solo se admiten para Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
setZoom()
chrome.tabs.setZoom(
tabId?: number,
zoomFactor: number,
callback?: function,
)
Acerca una pestaña especificada.
Parámetros
-
tabId
número opcional
Es el ID de la pestaña en 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
0
establece la pestaña en su factor de zoom predeterminado actual. Los valores superiores a0
especifican un factor de zoom (posiblemente no predeterminado) para la pestaña. -
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:() => void
Muestra
-
Promise<void>
Chrome 88 y versiones posterioresLas promesas solo se admiten para Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
setZoomSettings()
chrome.tabs.setZoomSettings(
tabId?: number,
zoomSettings: ZoomSettings,
callback?: function,
)
Establece la configuración de zoom de una pestaña especificada, que define cómo se controlan los cambios de zoom. Estos parámetros de configuración se restablecen a los valores predeterminados cuando se navega por la pestaña.
Parámetros
-
tabId
número 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 controlan los cambios de zoom y en qué alcance.
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:() => void
Muestra
-
Promise<void>
Chrome 88 y versiones posterioresLas promesas solo se admiten para Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
ungroup()
chrome.tabs.ungroup(
tabIds: number | [number, ...number[]],
callback?: function,
)
Quita una o más pestañas de sus respectivos grupos. Si algún grupo queda vacío, se borrará.
Parámetros
-
tabIds
número | [número, ...número[]]
El ID de la pestaña o la lista de IDs de pestañas que se quitarán de sus respectivos grupos.
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:() => void
Muestra
-
Promise<void>
Las promesas solo se admiten para Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
update()
chrome.tabs.update(
tabId?: number,
updateProperties: object,
callback?: function,
)
Modifica las propiedades de una pestaña. Las propiedades que no se especifican en updateProperties
no se modifican.
Parámetros
-
tabId
número 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 posterioresIndica si el navegador debe descartar la pestaña automáticamente cuando hay pocos recursos.
-
destacado
booleano opcional
Agrega o quita la pestaña de la selección actual.
-
silenciado
booleano opcional
Chrome 45 y versiones posterioresIndica si se debe silenciar la pestaña.
-
openerTabId
número opcional
El ID de la pestaña que abrió esta pestaña. Si se especifica, la pestaña del activador debe estar en la misma ventana que esta pestaña.
-
marcada
booleano opcional
Indica si la pestaña se debe fijar.
-
seleccionado
booleano opcional
ObsoletoUsa destacado.
Indica si se debe seleccionar la pestaña.
-
url
cadena opcional
Es una URL a la que se debe navegar en la pestaña. Las URLs de JavaScript no son compatibles. En su lugar, usa
scripting.executeScript
.
-
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(tab?: Tab) => void
Muestra
-
Promise<Tab | undefined>
Chrome 88 y versiones posterioresLas promesas solo se admiten para Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
Eventos
onActivated
chrome.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 esté configurada en el momento en que se activa este evento, pero puedes detectar eventos onUpdated para recibir una notificación cuando se configure una URL.
Parámetros
-
callback
función
El parámetro
callback
se 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.
-
-
onActiveChanged
chrome.tabs.onActiveChanged.addListener(
callback: function,
)
Usa tabs.onActivated
.
Se activa cuando cambia la pestaña seleccionada en una ventana. Ten en cuenta que es posible que la URL de la pestaña no esté configurada en el momento en que se activa este evento, pero puedes escuchar los eventos tabs.onUpdated
para recibir una notificación cuando se configure una URL.
Parámetros
-
callback
función
El parámetro
callback
se ve de la siguiente manera:(tabId: number, selectInfo: object) => void
-
tabId
número
-
selectInfo
objeto
-
windowId
número
Es el ID de la ventana en la que cambió la pestaña seleccionada.
-
-
onAttached
chrome.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
callback
se ve de la siguiente manera:(tabId: number, attachInfo: object) => void
-
tabId
número
-
attachInfo
objeto
-
newPosition
número
-
newWindowId
número
-
-
onCreated
chrome.tabs.onCreated.addListener(
callback: function,
)
Se activa cuando se crea una pestaña. Ten en cuenta que es posible que la URL y la membresía del grupo de pestañas no estén configuradas en el momento en que se activa este evento, pero puedes escuchar los eventos onUpdated para recibir una notificación cuando se configure una URL o se agregue la pestaña a un grupo de pestañas.
Parámetros
-
callback
función
El parámetro
callback
se ve de la siguiente manera:(tab: Tab) => void
-
tab
-
onDetached
chrome.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
callback
se ve de la siguiente manera:(tabId: number, detachInfo: object) => void
-
tabId
número
-
detachInfo
objeto
-
oldPosition
número
-
oldWindowId
número
-
-
onHighlightChanged
chrome.tabs.onHighlightChanged.addListener(
callback: function,
)
Usa tabs.onHighlighted
.
Se activa cuando cambian las pestañas destacadas o seleccionadas en una ventana.
Parámetros
-
callback
función
El parámetro
callback
se ve de la siguiente manera:(selectInfo: object) => void
-
selectInfo
objeto
-
tabIds
number[]
Todas las pestañas destacadas en la ventana
-
windowId
número
La ventana cuyas pestañas cambiaron
-
-
onHighlighted
chrome.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
callback
se ve de la siguiente manera:(highlightInfo: object) => void
-
highlightInfo
objeto
-
tabIds
number[]
Todas las pestañas destacadas en la ventana
-
windowId
número
La ventana cuyas pestañas cambiaron
-
-
onMoved
chrome.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. Los eventos de movimiento no se activan para las otras pestañas que deben moverse en respuesta a la pestaña que se movió de forma manual. Este evento no se activa cuando se mueve una pestaña entre ventanas. Para obtener más información, consulta tabs.onDetached
.
Parámetros
-
callback
función
El parámetro
callback
se 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
chrome.tabs.onRemoved.addListener(
callback: function,
)
Se activa cuando se cierra una pestaña.
Parámetros
-
callback
función
El parámetro
callback
se 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 está cerrada.
-
-
onReplaced
chrome.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
callback
se ve de la siguiente manera:(addedTabId: number, removedTabId: number) => void
-
addedTabId
número
-
removedTabId
número
-
onSelectionChanged
chrome.tabs.onSelectionChanged.addListener(
callback: function,
)
Usa tabs.onActivated
.
Se activa cuando cambia la pestaña seleccionada en una ventana.
Parámetros
-
callback
función
El parámetro
callback
se ve de la siguiente manera:(tabId: number, selectInfo: object) => void
-
tabId
número
-
selectInfo
objeto
-
windowId
número
Es el ID de la ventana en la que cambió la pestaña seleccionada.
-
-
onUpdated
chrome.tabs.onUpdated.addListener(
callback: function,
)
Se activa cuando se actualiza una pestaña.
Parámetros
-
callback
función
El parámetro
callback
se ve de la siguiente manera:(tabId: number, changeInfo: object, tab: Tab) => void
-
tabId
número
-
changeInfo
objeto
-
Audible
booleano opcional
Chrome 45 y versiones posterioresEl nuevo estado audible de la pestaña.
-
autoDiscardable
booleano opcional
Chrome 54 y versiones posterioresEl nuevo estado de descarte automático de la pestaña
-
descartado
booleano opcional
Chrome 54 y versiones posterioresEl nuevo estado descartado de la pestaña
-
favIconUrl
cadena opcional
Es la nueva URL del ícono de página de la pestaña.
-
congelado
booleano opcional
PendienteEl nuevo estado congelado de la pestaña.
-
groupId
número opcional
Chrome 88 y versiones posterioresEl nuevo grupo de la pestaña.
-
mutedInfo
MutedInfo opcional
Chrome 46 y versiones posterioresEl nuevo estado silenciado de la pestaña y el motivo del cambio
-
marcada
booleano opcional
El nuevo estado fijado de la pestaña
-
estado
TabStatus opcional
Es el estado de carga de la pestaña.
-
título
cadena opcional
Chrome 48 y versiones posterioresEl nuevo título de la pestaña.
-
url
cadena opcional
La URL de la pestaña si cambió
-
-
tab
-
onZoomChange
chrome.tabs.onZoomChange.addListener(
callback: function,
)
Se activa cuando se aplica zoom a una pestaña.
Parámetros
-
callback
función
El parámetro
callback
se ve de la siguiente manera:(ZoomChangeInfo: object) => void
-
ZoomChangeInfo
objeto
-
newZoomFactor
número
-
oldZoomFactor
número
-
tabId
número
-
zoomSettings
-
-