chrome.tabs

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 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 a tabs.query() en cuatro propiedades sensibles en instancias de tabs.Tab: url, pendingUrl, title y favIconUrl.

{
  "name": "My extension",
  ...
  "permissions": [
    "tabs"
  ],
  ...
}
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 como tabs.captureVisibleTab(), tabs.executeScript(), tabs.insertCSS() y tabs.removeCSS().

{
  "name": "My extension",
  ...
  "host_permissions": [
    "http://*/*",
    "https://*/*"
  ],
  ...
}
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.

{
  "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 trabajador del servicio 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 ella

En este ejemplo, se muestra cómo mover una pestaña mientras se está arrastrando o no. Si bien en este ejemplo se 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

Chrome 46 y versiones posteriores

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. Es equivalente 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

Chrome 46 y versiones posteriores

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 posteriores

    Si 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 posteriores

    Indica si el navegador puede descartar automáticamente la pestaña cuando hay pocos recursos.

  • descartado

    booleano

    Chrome 54 y versiones posteriores

    Indica 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

    Pendiente

    Indica 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 posteriores

    Es 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ñas 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 en chrome.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 posteriores

    Es la última vez que se accedió a la pestaña, expresada como la cantidad de milisegundos desde la época.

  • mutedInfo

    MutedInfo opcional

    Chrome 46 y versiones posteriores

    El 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 posteriores

    Es la 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

    Obsoleto

    Usa 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

    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én Tab.pendingUrl.

  • ancho

    número opcional

    Es el ancho de la pestaña en píxeles.

  • windowId

    número

    El ID de la ventana que contiene la pestaña.

TabStatus

Chrome 44 y versiones posteriores

Es el estado de carga de la pestaña.

Enum

"unloaded"

"loading"

"complete"

WindowType

Chrome 44 y versiones posteriores

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 posteriores

    Se usa para mostrar el nivel de zoom predeterminado de la pestaña actual en las llamadas a tabs.getZoomSettings.

  • Standard

    Define cómo se controlan los cambios de zoom, es decir, qué entidad es responsable de la escala real de la página. El valor predeterminado es automatic.

  • alcance

    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.

ZoomSettingsMode

Chrome 44 y versiones posteriores

Define cómo se controlan los cambios de zoom, es decir, qué entidad es responsable de la escala 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

Chrome 44 y versiones posteriores

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 en 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

Chrome 92 y versiones posteriores

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

Chrome 46 y versiones posteriores

Un ID que representa la ausencia de una pestaña del navegador.

Valor

-1

TAB_INDEX_NONE

Chrome 123 y versiones posteriores

Es un índice que representa la ausencia de un índice de pestaña en un tab_strip.

Valor

-1

Métodos

captureVisibleTab()

Promesa
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 posteriores

    Las promesas son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución 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 la secuencia de comandos de contenido.

Parámetros

  • tabId

    número

  • connectInfo

    objeto opcional

    • documentId

      cadena opcional

      Chrome 106 y versiones posteriores

      Abre 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()

Promesa
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 es true.

    • í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

      Obsoleto

      Usa 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 posteriores

    Las promesas son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.

detectLanguage()

Promesa
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 o fr. 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 muestra zh-CN. Para un idioma desconocido o no definido, se muestra und.

Muestra

  • Promise<string>

    Chrome 88 y versiones posteriores

    Las promesas son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.

discard()

Promesa Chrome 54 y versiones posteriores
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 hay 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; de lo contrario, no se define.

Muestra

  • Promise<Tab | undefined>

    Chrome 88 y versiones posteriores

    Las promesas son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.

duplicate()

Promesa
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

    • tab

      Tab opcional

      Detalles sobre la pestaña duplicada. El objeto tabs.Tab no contiene url, pendingUrl, title ni favIconUrl si no se solicitó el permiso "tabs".

Muestra

  • Promise<Tab | undefined>

    Chrome 88 y versiones posteriores

    Las promesas son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.

get()

Promesa
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

Muestra

  • Promise<Tab>

    Chrome 88 y versiones posteriores

    Las promesas son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.

getCurrent()

Promesa
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

  • callback

    función opcional

    El parámetro callback se ve de la siguiente manera:

    (tab?: Tab) => void

    • tab

      Tab opcional

Muestra

  • Promise<Tab | undefined>

    Chrome 88 y versiones posteriores

    Las promesas son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.

getZoom()

Promesa
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 posteriores

    Las promesas son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.

getZoomSettings()

Promesa
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

      La configuración de zoom actual de la pestaña

Muestra

  • Promise<ZoomSettings>

    Chrome 88 y versiones posteriores

    Las promesas son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.

goBack()

Promesa Chrome 72 y versiones posteriores
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 posteriores

    Las promesas son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.

goForward()

Promesa Chrome 72 y versiones posteriores
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 posteriores

    Las promesas son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.

group()

Promesa Chrome 88 y versiones posteriores
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 son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.

highlight()

Promesa
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

  • Chrome 88 y versiones posteriores

    Las promesas son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.

move()

Promesa
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

    • pestañas

      Tab | Tab[]

      Detalles sobre las pestañas que se movieron

Muestra

  • Promise<Tab | Tab[]>

    Chrome 88 y versiones posteriores

    Las promesas son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.

query()

Promesa
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 posteriores

      Indica si las pestañas son audibles.

    • autoDiscardable

      booleano opcional

      Chrome 54 y versiones posteriores

      Indica 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 posteriores

      Indica 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

      Pendiente

      Indica 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 posteriores

      El 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 posteriores

      Indica 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 posteriores

    Las promesas son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.

reload()

Promesa
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 posteriores

    Las promesas son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.

remove()

Promesa
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 posteriores

    Las promesas son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.

sendMessage()

Promesa
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 posteriores

      Enví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 posteriores

    El 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 posteriores

    Las promesas son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.

setZoom()

Promesa
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 a 0 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 posteriores

    Las promesas son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.

setZoomSettings()

Promesa
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 debe 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 posteriores

    Las promesas son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.

ungroup()

Promesa Chrome 88 y versiones posteriores
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 son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución de llamada.

update()

Promesa
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 posteriores

      Indica 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 posteriores

      Indica 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

      Obsoleto

      Usa 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

    • tab

      Tab opcional

      Detalles sobre la pestaña actualizada. El objeto tabs.Tab no contiene url, pendingUrl, title ni favIconUrl si no se solicitó el permiso "tabs".

Muestra

  • Promise<Tab | undefined>

    Chrome 88 y versiones posteriores

    Las promesas son compatibles con el manifiesto V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para la retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa se resuelve con el mismo tipo que se pasa a la devolución 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 escuchar los 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.

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 de la pestaña 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

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

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 se reemplaza una pestaña 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

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 posteriores

        El nuevo estado audible de la pestaña.

      • autoDiscardable

        booleano opcional

        Chrome 54 y versiones posteriores

        El nuevo estado de descarte automático de la pestaña

      • descartado

        booleano opcional

        Chrome 54 y versiones posteriores

        El 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

        Pendiente

        El nuevo estado congelado de la pestaña.

      • groupId

        número opcional

        Chrome 88 y versiones posteriores

        El nuevo grupo de la pestaña.

      • mutedInfo

        MutedInfo opcional

        Chrome 46 y versiones posteriores

        El 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 posteriores

        El 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 acerca 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