browser.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 usarse. Por ejemplo: crear una pestaña nueva, volver a cargar una pestaña, navegar a otra URL, etc.

Hay tres permisos que los desarrolladores deben tener en cuenta cuando trabajan con la API de Tabs.

El permiso "tabs"

Este permiso no otorga acceso al espacio de nombres browser.tabs. En cambio, otorga a una extensión la capacidad de llamar 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 sensibles de tabs.Tab de una pestaña coincidente. También pueden interactuar directamente con las pestañas coincidentes usando métodos como tabs.captureVisibleTab(), scripting.executeScript(), scripting.insertCSS() y scripting.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.

Abrir una página de extensión en una pestaña nueva

Un patrón común para las extensiones es abrir una página de incorporación en una pestaña nueva cuando se instala la extensión. En el siguiente ejemplo, se muestra cómo hacerlo.

background.js:

browser.runtime.onInstalled.addListener(({reason}) => {
  if (reason === 'install') {
    browser.tabs.create({
      url: "onboarding.html"
    });
  }
});

Obtener la pestaña actual

En este ejemplo, se muestra cómo el service worker de una extensión puede recuperar la pestaña activa de la ventana enfocada actualmente (o la ventana enfocada más recientemente, si no hay ventanas de Chrome enfocadas). Por lo general, se puede considerar como la pestaña actual del usuario.

  async function getCurrentTab() {
    let queryOptions = { active: true, lastFocusedWindow: true };
    // `tab` will either be a `tabs.Tab` instance or `undefined`.
    let [tab] = await browser.tabs.query(queryOptions);
    return tab;
  }

  function getCurrentTab(callback) {
    let queryOptions = { active: true, lastFocusedWindow: true };
    browser.tabs.query(queryOptions, ([tab]) => {
      if (browser.runtime.lastError)
      console.error(browser.runtime.lastError);
      // `tab` will either be a `tabs.Tab` instance or `undefined`.
      callback(tab);
    });
  }

Silenciar la pestaña especificada

En este ejemplo, se muestra cómo una extensión puede activar o desactivar el estado de silencio de una pestaña determinada.

  async function toggleMuteState(tabId) {
    const tab = await browser.tabs.get(tabId);
    const muted = !tab.mutedInfo.muted;
    await browser.tabs.update(tabId, {muted});
    console.log(`Tab ${tab.id} is ${muted ? "muted" : "unmuted"}`);
  }

  function toggleMuteState(tabId) {
    browser.tabs.get(tabId, async (tab) => {
      let muted = !tab.mutedInfo.muted;
      await browser.tabs.update(tabId, { muted });
      console.log(`Tab ${tab.id} is ${ muted ? "muted" : "unmuted" }`);
    });
  }

Mover la pestaña actual a la primera posición cuando se hace clic en ella

En este ejemplo, se muestra cómo mover una pestaña mientras se arrastra o no. Si bien en este ejemplo se usa browser.tabs.move, puedes usar el mismo patrón de espera para otras llamadas que modifican pestañas mientras se arrastra un elemento.

  browser.tabs.onActivated.addListener(moveToFirstPosition);

  async function moveToFirstPosition(activeInfo) {
    try {
      await browser.tabs.move(activeInfo.tabId, {index: 0});
      console.log("Success.");
    } catch (error) {
      if (error == "Error: Tabs cannot be edited right now (user may be dragging a tab).") {
        setTimeout(() => moveToFirstPosition(activeInfo), 50);
      } else {
        console.error(error);
      }
    }
  }

  browser.tabs.onActivated.addListener(moveToFirstPositionMV2);

  function moveToFirstPositionMV2(activeInfo) {
    browser.tabs.move(activeInfo.tabId, { index: 0 }, () => {
      if (browser.runtime.lastError) {
        const error = browser.runtime.lastError;
        if (error == "Error: Tabs cannot be edited right now (user may be dragging a tab).") {
          setTimeout(() => moveToFirstPositionMV2(activeInfo), 50);
        } else {
          console.error(error);
        }
      } else {
        console.log("Success.");
      }
    });
  }

Pasa un mensaje a la secuencia de comandos de contenido de una pestaña seleccionada

En este ejemplo, se muestra cómo el service worker de una extensión puede comunicarse con las secuencias de comandos de contenido en pestañas específicas del navegador con tabs.sendMessage().

function sendMessageToActiveTab(message) {
  const [tab] = await browser.tabs.query({ active: true, lastFocusedWindow: true });
  const response = await browser.tabs.sendMessage(tab.id, message);
  // TODO: Do something with the response.
}

Ejemplos de extensiones

Para ver más demostraciones de extensiones de la API de Tabs, explora cualquiera de las siguientes opciones:

Tipos

MutedInfo

Chrome 46 y versiones posteriores browser.* desde Chrome 148

Es el estado silenciado de la pestaña y el motivo del último cambio de estado.

Propiedades

  • extensionId

    string opcional

    Es el ID de la extensión que cambió el estado de silencio. No se establece si una extensión no fue el motivo por el que cambió el estado de silencio por última vez.

  • silenciado

    booleano

    Indica si la pestaña está silenciada (se impide que reproduzca sonido). Es posible que la pestaña esté silenciada incluso si no se reprodujo o no se está reproduciendo sonido en ella. Equivale a si se muestra el indicador de audio "silenciado".

  • Reason

    MutedInfoReason opcional

    Es el motivo por el que se silenció o se activó el sonido de la pestaña. No se establece si nunca se cambió el estado de silencio de la pestaña.

MutedInfoReason

Chrome 46 y versiones posteriores browser.* desde Chrome 148

Es un evento que causó un cambio de estado silenciado.

Enum

"user"
Una acción de entrada del usuario estableció el estado silenciado.

"capture"
Se inició la captura de la pestaña, lo que forzó un cambio de estado de silencio.

"extension"
Una extensión, identificada por el campo extensionId, estableció el estado silenciado.

Tab

Propiedades

  • activo

    booleano

    Indica si la pestaña está activa en su ventana. No significa necesariamente que la ventana esté enfocada.

  • Audible

    booleano opcional

    Chrome 45 y versiones posteriores browser.* desde Chrome 148

    Indica si la pestaña produjo sonido en los últimos segundos (pero es posible que no se escuche si también está silenciada). Equivale a si se muestra el indicador de "audio de la bocina".

  • autoDiscardable

    booleano

    Chrome 54 y versiones posteriores browser.* desde Chrome 148

    Indica si el navegador puede descartar la pestaña automáticamente cuando los recursos son bajos.

  • descartado

    booleano

    Chrome 54 y versiones posteriores browser.* desde Chrome 148

    Indica si se descartó la pestaña. Una pestaña descartada es aquella cuyo contenido se descargó de la memoria, pero sigue visible en la barra de pestañas. Su contenido se vuelve a cargar la próxima vez que se activa.

  • favIconUrl

    string opcional

    Es la URL del ícono de página de la pestaña. Esta propiedad solo está presente si la extensión tiene el permiso "tabs" o tiene permisos de host para la página. También puede ser una cadena vacía si la pestaña se está cargando.

  • no responde

    booleano

    Chrome 132 y versiones posteriores browser.* desde Chrome 148

    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 tira de pestañas y su contenido se carga en la memoria. Se descongela cuando se activa.

  • groupId

    número

    Chrome 88 y versiones posteriores browser.* desde Chrome 148

    Es el ID del grupo al que pertenece la pestaña.

  • alto

    number opcional

    Es la altura de la pestaña en píxeles.

  • destacado

    booleano

    Indica si la pestaña está destacada.

  • id

    number opcional

    Es el ID de la pestaña. Los IDs de pestaña son únicos dentro de una sesión del navegador. En algunas circunstancias, es posible que no se asigne un ID a una pestaña, por ejemplo, cuando se consultan pestañas externas con la API de sessions, en cuyo caso puede haber un ID de sesión. El ID de pestaña también se puede establecer en chrome.tabs.TAB_ID_NONE para las apps y las ventanas de Herramientas para desarrolladores.

  • incognito

    booleano

    Indica si la pestaña está en una ventana de incógnito.

  • índice

    número

    Es el índice basado en cero de la pestaña dentro de su ventana.

  • lastAccessed

    número

    Chrome 121 y versiones posteriores browser.* desde Chrome 148

    La última vez que la pestaña se activó en su ventana, expresada como la cantidad de milisegundos desde la época.

  • mutedInfo

    MutedInfo opcional

    Chrome 46 y versiones posteriores browser.* desde Chrome 148

    Es el estado silenciado de la pestaña y el motivo del último cambio de estado.

  • openerTabId

    number opcional

    Es el ID de la pestaña que abrió esta pestaña, si corresponde. Esta propiedad solo está presente si la pestaña de apertura aún existe.

  • pendingUrl

    string opcional

    Chrome 79 y versiones posteriores browser.* desde Chrome 148

    Es la URL a la que navega la pestaña antes de que se confirme. Esta propiedad solo está presente si la extensión tiene el permiso "tabs" o tiene permisos de host para la página y hay una navegación pendiente.

  • marcada

    booleano

    Indica si la pestaña está fijada.

  • seleccionado

    booleano

    Obsoleto

    Usa tabs.Tab.highlighted.

    Indica si la pestaña está seleccionada.

  • sessionId

    string opcional

    Es el ID de sesión que se usa para identificar de forma única una pestaña obtenida de la API de sessions.

  • splitViewId

    number opcional

    Chrome 140 y versiones posteriores browser.* desde Chrome 148

    Es el ID de la vista dividida a la que pertenece la pestaña.

  • estado

    TabStatus opcional

    Es el estado de carga de la pestaña.

  • título

    string opcional

    Es el título de la pestaña. Esta propiedad solo está presente si la extensión tiene el permiso "tabs" o tiene permisos de host para la página.

  • url

    string opcional

    Es la última URL confirmada del marco principal de la pestaña. Esta propiedad solo está presente si la extensión tiene el permiso "tabs" o tiene permisos de host para la página. Puede ser una cadena vacía si la pestaña aún no se confirmó. Consulta también Tab.pendingUrl.

  • ancho

    number opcional

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

  • windowId

    número

    Es el ID de la ventana que contiene la pestaña.

TabStatus

Chrome 44 y versiones posteriores browser.* desde Chrome 148

Es el estado de carga de la pestaña.

Enum

"unloaded"

"loading"

"complete"

WindowType

Chrome 44 y versiones posteriores browser.* desde Chrome 148

Es el tipo de ventana.

Enum

"normal"

"popup"

"panel"

"app"

"devtools"

ZoomSettings

Define cómo se manejan los cambios de zoom en una pestaña y en qué alcance.

Propiedades

  • defaultZoomFactor

    number opcional

    Chrome 43 y versiones posteriores browser.* desde Chrome 148

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

  • Standard

    Define cómo se manejan los cambios de zoom, es decir, qué entidad es responsable del escalamiento real de la página; el valor predeterminado es automatic.

  • alcance

    Define si los cambios de zoom persisten para el origen de la página o solo se aplican en esta pestaña. El valor predeterminado es per-origin cuando se encuentra en el modo automatic y per-tab en caso contrario.

ZoomSettingsMode

Chrome 44 y versiones posteriores browser.* desde Chrome 148

Define cómo se manejan los cambios de zoom, es decir, qué entidad es responsable del escalamiento real de la página; el valor predeterminado es automatic.

Enum

"automatic"
El navegador controla automáticamente los cambios de zoom.

"manual"
Anula el control automático de los cambios de zoom. El evento onZoomChange se seguirá enviando, y es responsabilidad de la extensión escuchar este evento y escalar la página de forma manual. Este modo no admite el zoom de per-origin y, por lo tanto, ignora el parámetro de configuración de zoom de scope y supone per-tab.

"disabled"
Inhabilita todo el zoom en la pestaña. La pestaña vuelve al nivel de zoom predeterminado y se ignoran todos los intentos de cambiar el zoom.

ZoomSettingsScope

Chrome 44 y versiones posteriores browser.* desde Chrome 148

Define si los cambios de zoom persisten para el origen de la página o solo se aplican en esta pestaña. El valor predeterminado es per-origin cuando se encuentra en el modo automatic y per-tab en caso contrario.

Enum

"per-origin"
Los cambios de zoom persisten en el origen de la página con zoom, es decir, todas las demás pestañas que naveguen a ese mismo origen también tendrán zoom. Además, los cambios de zoom de per-origin se guardan con el origen, lo que significa que, cuando se navega a otras páginas del mismo origen, todas se amplían con el mismo factor de zoom. El permiso per-origin solo está disponible en el modo automatic.

"per-tab"
Los cambios de zoom solo se aplican en esta pestaña, y los cambios de zoom en otras pestañas no afectan el zoom de esta pestaña. Además, los cambios de zoom de per-tab se restablecen durante la navegación; cuando se navega por una pestaña, las páginas siempre se cargan con sus factores de zoom de per-origin.

Propiedades

MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND

Chrome 92 y versiones posteriores browser.* desde Chrome 148

Es la cantidad máxima de veces que se puede llamar a captureVisibleTab por segundo. captureVisibleTab es costoso y no se debe llamar con demasiada frecuencia.

Valor

2

SPLIT_VIEW_ID_NONE

Chrome 140 y versiones posteriores browser.* desde Chrome 148

Es un ID que representa la ausencia de una pestaña dividida.

Valor

-1

TAB_ID_NONE

Chrome 46 y versiones posteriores browser.* desde Chrome 148

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

Valor

-1

TAB_INDEX_NONE

Chrome 123 y versiones posteriores browser.* desde Chrome 148

Es un índice que representa la ausencia de un índice de pestaña en una barra de pestañas.

Valor

-1

Métodos

captureVisibleTab()

browser.tabs.captureVisibleTab(
  windowId?: number,
  options?: ImageDetails,
)
: Promise<string>

Captura el área visible de la pestaña activa en la ventana especificada. Para llamar a este método, la extensión debe tener el permiso <all_urls> o el permiso activeTab. Además de los sitios a los que las extensiones pueden acceder normalmente, este método permite que las extensiones capturen sitios sensibles que, de lo contrario, estarían restringidos, incluidas las páginas con el esquema chrome:, las páginas de otras extensiones y las URLs de datos. Estos sitios sensibles solo se pueden capturar con el permiso activeTab. Las URLs de archivos solo se pueden capturar si se le otorgó acceso a los archivos a la extensión.

Parámetros

  • windowId

    number opcional

    Es la ventana de destino. La configuración predeterminada es la ventana actual.

  • opciones

    ImageDetails opcional

Muestra

  • Promise<string>

    Chrome 88 y versiones posteriores browser.* desde Chrome 148

connect()

browser.tabs.connect(
  tabId: number,
  connectInfo?: object,
)
: runtime.Port

Se conecta a las secuencias de comandos de contenido en la pestaña especificada. El evento runtime.onConnect se activa en cada secuencia de comandos de contenido que se ejecuta en la pestaña especificada para la extensión actual. Para obtener más detalles, consulta Mensajería de secuencias de comandos de contenido.

Parámetros

  • tabId

    número

  • connectInfo

    objeto opcional

    • documentId

      string opcional

      Chrome 106 y versiones posteriores browser.* desde Chrome 148

      Abre un puerto a un documento específico identificado por documentId en lugar de todos los marcos de la pestaña.

    • frameId

      number opcional

      Abre un puerto a un marco específico identificado por frameId en lugar de todos los marcos de la pestaña.

    • nombre

      string opcional

      Se pasa a onConnect para las secuencias de comandos de contenido que escuchan el evento de conexión.

Muestra

  • Es un puerto que se puede usar para comunicarse con las secuencias de comandos de contenido que se ejecutan en la pestaña especificada. El evento runtime.Port del puerto se activa si la pestaña se cierra o no existe.

create()

browser.tabs.create(
  createProperties: object,
)
: Promise<Tab>

Crea una pestaña nueva.

Parámetros

  • createProperties

    objeto

    • activo

      booleano opcional

      Indica si la pestaña debe convertirse en la pestaña activa de la ventana. No afecta si la ventana está enfocada (consulta windows.update). El valor predeterminado es true.

    • índice

      number opcional

      Es la posición que debe adoptar la pestaña en la ventana. El valor proporcionado se limita a un valor entre cero y la cantidad de pestañas de la ventana.

    • openerTabId

      number opcional

      Es el ID de la pestaña que abrió esta pestaña. Si se especifica, la pestaña de apertura debe estar en la misma ventana que la pestaña recién creada.

    • marcada

      booleano opcional

      Indica si se debe fijar la pestaña. La configuración predeterminada es false.

    • seleccionado

      booleano opcional

      Obsoleto

      Usa active.

      Indica si la pestaña debe convertirse en la pestaña seleccionada de la ventana. La configuración predeterminada es true.

    • splitWithTabId

      number opcional

      Chrome 155 y versiones posteriores

      Es el ID de una pestaña existente con la que se creará una vista dividida. Si se especifica, la pestaña de división debe cumplir con las siguientes condiciones:

      • No debe ser una pestaña que ya esté dividida.
      • Debe estar en la misma ventana que la pestaña recién creada.
      • Si se especifica windowId, debe ser igual al ID de la ventana de la pestaña de división.
      • Si se especifica index, debe ser un índice adyacente a la pestaña de división y afectará el posicionamiento relativo de la pestaña recién creada.
    • url

      string opcional

      Es la URL a la que se debe navegar inicialmente en la pestaña. Las URLs completamente calificadas deben incluir un esquema (es decir, 'http://www.google.com', no 'www.google.com'). Las URLs relativas se relacionan con la página actual dentro de la extensión. La opción predeterminada es la página Nueva pestaña.

    • windowId

      number opcional

      Es la ventana en la que se creará la pestaña nueva. La configuración predeterminada es la ventana actual.

Muestra

  • Promise<Tab>

    Chrome 88 y versiones posteriores browser.* desde Chrome 148

createSplit()

Chrome 155 y versiones posteriores
browser.tabs.createSplit(
  tabIds: [number, number],
)
: Promise<number>

Divide dos pestañas existentes en una vista dividida.

Parámetros

  • tabIds

    [number, number]

    Un array de exactamente dos IDs de pestañas para vincular en una vista dividida. Todas las pestañas deben cumplir con las siguientes condiciones:

    Deben ser adyacentes. No deben estar ya en una vista dividida. Deben tener estados windowId, pinned y groupId que coincidan.

Muestra

  • Promise<number>

detectLanguage()

browser.tabs.detectLanguage(
  tabId?: number,
)
: Promise<string>

Detecta el idioma principal del contenido de una pestaña.

Parámetros

  • tabId

    number opcional

    La configuración predeterminada es la pestaña activa de la ventana actual.

Muestra

  • Promise<string>

    Chrome 88 y versiones posteriores browser.* desde Chrome 148

discard()

Chrome 54 y versiones posteriores browser.* desde Chrome 148
browser.tabs.discard(
  tabId?: number,
)
: Promise<Tab | undefined>

Descarta una pestaña de la memoria. Las pestañas descartadas siguen visibles en la barra de pestañas y se vuelven a cargar cuando se activan.

Parámetros

  • tabId

    number opcional

    Es el ID de la pestaña que se descartará. Si se especifica, se descarta la pestaña, a menos que esté activa o ya se haya descartado. Si se omite, el navegador descarta la pestaña menos importante. Esto puede fallar si no hay pestañas descartables.

Muestra

  • Promise<Tab | undefined>

    Chrome 88 y versiones posteriores browser.* desde Chrome 148

    Se resuelve después de que se completa la operación.

duplicate()

browser.tabs.duplicate(
  tabId: number,
)
: Promise<Tab | undefined>

Duplica una pestaña.

Parámetros

  • tabId

    número

    Es el ID de la pestaña que se duplicará.

Muestra

  • Promise<Tab | undefined>

    Chrome 88 y versiones posteriores browser.* desde Chrome 148

get()

browser.tabs.get(
  tabId: number,
)
: Promise<Tab>

Recupera detalles sobre la pestaña especificada.

Parámetros

  • tabId

    número

Muestra

  • Promise<Tab>

    Chrome 88 y versiones posteriores browser.* desde Chrome 148

getCurrent()

browser.tabs.getCurrent(): Promise<Tab | undefined>

Obtiene la pestaña desde la que se realiza esta llamada de secuencia de comandos. Devuelve undefined si se llama desde un contexto que no es de pestaña (por ejemplo, una página en segundo plano o una vista emergente).

Muestra

  • Promise<Tab | undefined>

    Chrome 88 y versiones posteriores browser.* desde Chrome 148

getZoom()

browser.tabs.getZoom(
  tabId?: number,
)
: Promise<number>

Obtiene el factor de zoom actual de una pestaña especificada.

Parámetros

  • tabId

    number opcional

    Es el ID de la pestaña de la que se obtendrá el factor de zoom actual. El valor predeterminado es la pestaña activa de la ventana actual.

Muestra

  • Promise<number>

    Chrome 88 y versiones posteriores browser.* desde Chrome 148

    Se resuelve con el factor de zoom actual de la pestaña después de que se recuperó.

getZoomSettings()

browser.tabs.getZoomSettings(
  tabId?: number,
)
: Promise<ZoomSettings>

Obtiene la configuración de zoom actual de una pestaña especificada.

Parámetros

  • tabId

    number opcional

    Es el ID de la pestaña de la que se obtendrá la configuración de zoom actual. El valor predeterminado es la pestaña activa de la ventana actual.

Muestra

  • Promise<ZoomSettings>

    Chrome 88 y versiones posteriores browser.* desde Chrome 148

    Se resuelve con la configuración de zoom actual de la pestaña.

goBack()

Chrome 72 y versiones posteriores Navegador* desde Chrome 148
browser.tabs.goBack(
  tabId?: number,
)
: Promise<void>

Vuelve a la página anterior, si hay una disponible.

Parámetros

  • tabId

    number opcional

    Es el ID de la pestaña a la que se debe volver. El valor predeterminado es la pestaña seleccionada de la ventana actual.

Muestra

  • Promise<void>

    Chrome 88 y versiones posteriores browser.* desde Chrome 148

goForward()

Chrome 72 y versiones posteriores Navegador* desde Chrome 148
browser.tabs.goForward(
  tabId?: number,
)
: Promise<void>

Avanza a la página siguiente, si hay una disponible.

Parámetros

  • tabId

    number opcional

    Es el ID de la pestaña a la que se navegará hacia adelante. De forma predeterminada, es la pestaña seleccionada de la ventana actual.

Muestra

  • Promise<void>

    Chrome 88 y versiones posteriores browser.* desde Chrome 148

group()

Chrome 88 y versiones posteriores browser.* desde Chrome 148
browser.tabs.group(
  options: object,
)
: Promise<number>

Agrega una o más pestañas a un grupo especificado o, si no se especifica ningún grupo, agrega las pestañas dadas a un grupo recién creado.

Parámetros

  • opciones

    objeto

    • createProperties

      objeto opcional

      Son los parámetros de configuración para crear un grupo. No se puede usar si ya se especificó groupId.

      • windowId

        number opcional

        La ventana del grupo nuevo. La configuración predeterminada es la ventana actual.

    • groupId

      number opcional

      Es el ID del grupo al que se agregarán las pestañas. Si no se especifica, se creará un grupo nuevo.

    • tabIds

      number | [number, ...number[]]

      Es el ID de la pestaña o la lista de IDs de pestañas que se agregarán al grupo especificado.

Muestra

  • Promise<number>

highlight()

browser.tabs.highlight(
  highlightInfo: object,
)
: Promise<windows.Window>

Destaca las pestañas dadas y se enfoca en la primera del grupo. Parecerá que no hace nada si la pestaña especificada está activa en ese momento.

Parámetros

  • highlightInfo

    objeto

    • tabs

      number | number[]

      Uno o más índices de pestañas para destacar.

    • windowId

      number opcional

      La ventana que contiene las pestañas.

Muestra

  • Chrome 88 y versiones posteriores browser.* desde Chrome 148

move()

browser.tabs.move(
  tabIds: number | number[],
  moveProperties: object,
)
: Promise<Tab | Tab[]>

Mueve una o más pestañas a una nueva posición dentro de su ventana o a una ventana nueva. Ten en cuenta que las pestañas solo se pueden mover hacia y desde ventanas normales (window.type === "normal").

Parámetros

  • tabIds

    number | number[]

    Es el ID de la pestaña o la lista de IDs de pestañas que se moverán.

  • moveProperties

    objeto

    • índice

      número

      Es la posición a la que se moverá la ventana. Usa -1 para colocar la pestaña al final de la ventana.

    • windowId

      number opcional

      El valor predeterminado es la ventana en la que se encuentra la pestaña actualmente.

Muestra

  • Promise<Tab | Tab[]>

    Chrome 88 y versiones posteriores browser.* desde Chrome 148

query()

browser.tabs.query(
  queryInfo: object,
)
: Promise<Tab[]>

Obtiene todas las pestañas que tienen las propiedades especificadas o todas las pestañas si no se especifican propiedades.

Parámetros

  • queryInfo

    objeto

    • activo

      booleano opcional

      Indica si las pestañas están activas en sus ventanas.

    • Audible

      booleano opcional

      Chrome 45 y versiones posteriores browser.* desde Chrome 148

      Indica si las pestañas son audibles.

    • autoDiscardable

      booleano opcional

      Chrome 54 y versiones posteriores browser.* desde Chrome 148

      Indica si el navegador puede descartar las pestañas automáticamente cuando los recursos son bajos.

    • currentWindow

      booleano opcional

      Indica si las pestañas están en la ventana actual.

    • descartado

      booleano opcional

      Chrome 54 y versiones posteriores browser.* desde Chrome 148

      Indica si se descartan las pestañas. Una pestaña descartada es aquella cuyo contenido se descargó de la memoria, pero sigue visible en la barra de pestañas. Su contenido se vuelve a cargar la próxima vez que se activa.

    • no responde

      booleano opcional

      Chrome 132 y versiones posteriores browser.* desde Chrome 148

      Si las pestañas están congeladas Una pestaña inmovilizada no puede ejecutar tareas, incluidos los controladores de eventos o los temporizadores. Se puede ver en la tira de pestañas y su contenido se carga en la memoria. Se descongela cuando se activa.

    • groupId

      number opcional

      Chrome 88 y versiones posteriores browser.* desde Chrome 148

      Es el ID del grupo en el que se encuentran las pestañas o tabGroups.TAB_GROUP_ID_NONE para las pestañas sin agrupar.

    • destacado

      booleano opcional

      Indica si las pestañas están destacadas.

    • índice

      number opcional

      La posición de las pestañas dentro de sus ventanas.

    • lastFocusedWindow

      booleano opcional

      Indica si las pestañas están en la última ventana enfocada.

    • silenciado

      booleano opcional

      Chrome 45 y versiones posteriores browser.* desde Chrome 148

      Indica si las pestañas están silenciadas.

    • marcada

      booleano opcional

      Indica si las pestañas están fijadas.

    • splitViewId

      number opcional

      Chrome 140 y versiones posteriores browser.* desde Chrome 148

      Es el ID de la vista dividida en la que se encuentran las pestañas o tabs.SPLIT_VIEW_ID_NONE para las pestañas que no están en una vista dividida.

    • estado

      TabStatus opcional

      Es el estado de carga de la pestaña.

    • título

      string opcional

      Hacer coincidir los títulos de las páginas con un patrón Esta propiedad se ignora si la extensión no tiene el permiso "tabs" ni los permisos de host para la página.

    • url

      string | string[] opcional

      Compara las pestañas con uno o más patrones de URL. No se encuentran coincidencias con los identificadores de fragmentos. Esta propiedad se ignora si la extensión no tiene el permiso "tabs" ni los permisos de host para la página.

    • windowId

      number opcional

      Es el ID de la ventana superior o windows.WINDOW_ID_CURRENT para la ventana actual.

    • windowType

      WindowType opcional

      Es el tipo de ventana en la que se encuentran las pestañas.

Muestra

  • Promise<Tab[]>

    Chrome 88 y versiones posteriores browser.* desde Chrome 148

reload()

browser.tabs.reload(
  tabId?: number,
  reloadProperties?: object,
)
: Promise<void>

Volver a cargar una pestaña

Parámetros

  • tabId

    number opcional

    Es el ID de la pestaña que se volverá a cargar. De forma predeterminada, es la pestaña seleccionada de la ventana actual.

  • reloadProperties

    objeto opcional

    • bypassCache

      booleano opcional

      Indica si se debe omitir el almacenamiento en caché local. La configuración predeterminada es false.

Muestra

  • Promise<void>

    Chrome 88 y versiones posteriores browser.* desde Chrome 148

remove()

browser.tabs.remove(
  tabIds: number | number[],
)
: Promise<void>

Cierra una o más pestañas.

Parámetros

  • tabIds

    number | number[]

    Es el ID de la pestaña o la lista de IDs de pestañas que se cerrarán.

Muestra

  • Promise<void>

    Chrome 88 y versiones posteriores browser.* desde Chrome 148

sendMessage()

browser.tabs.sendMessage(
  tabId: number,
  message: any,
  options?: object,
)
: Promise<any>

Envía un solo mensaje a las secuencias de comandos de contenido en la pestaña especificada. El evento runtime.onMessage se activa en cada secuencia de comandos de contenido que se ejecuta en la pestaña especificada para la extensión actual.

Parámetros

  • tabId

    número

  • mensaje

    cualquiera

    Es el mensaje que se enviará. Este mensaje debe ser un objeto que se pueda convertir en JSON.

  • opciones

    objeto opcional

    • documentId

      string opcional

      Chrome 106 y versiones posteriores browser.* desde Chrome 148

      Envía un mensaje a un documento específico identificado por documentId en lugar de todos los marcos de la pestaña.

    • frameId

      number opcional

      Envía un mensaje a un marco específico identificado por frameId en lugar de a todos los marcos de la pestaña.

Muestra

  • Promise<any>

    Chrome 99 y versiones posteriores browser.* desde Chrome 148

    Es una promesa que se resuelve con la respuesta de la secuencia de comandos de contenido. Si se produce un error mientras se establece la conexión con la pestaña especificada, se rechazará la promesa.

setZoom()

browser.tabs.setZoom(
  tabId?: number,
  zoomFactor: number,
)
: Promise<void>

Aplica zoom a una pestaña especificada.

Parámetros

  • tabId

    number opcional

    Es el ID de la pestaña a la que se aplicará el zoom. El valor predeterminado es la pestaña activa de la ventana actual.

  • zoomFactor

    número

    Es el nuevo factor de zoom. Un valor de 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.

Muestra

  • Promise<void>

    Chrome 88 y versiones posteriores browser.* desde Chrome 148

    Se resuelve después de que se cambia el factor de zoom.

setZoomSettings()

browser.tabs.setZoomSettings(
  tabId?: number,
  zoomSettings: ZoomSettings,
)
: Promise<void>

Establece la configuración de zoom para una pestaña especificada, que define cómo se manejan los cambios de zoom. Estos parámetros de configuración se restablecen a los valores predeterminados cuando navegas por la pestaña.

Parámetros

  • tabId

    number opcional

    Es el ID de la pestaña para la que se cambiará la configuración de zoom. El valor predeterminado es la pestaña activa de la ventana actual.

  • zoomSettings

    Define cómo se manejan los cambios de zoom y en qué alcance.

Muestra

  • Promise<void>

    Chrome 88 y versiones posteriores browser.* desde Chrome 148

    Se resuelve después de que se cambia la configuración de zoom.

ungroup()

Chrome 88 y versiones posteriores browser.* desde Chrome 148
browser.tabs.ungroup(
  tabIds: number | [number, ...number[]],
)
: Promise<void>

Quita una o más pestañas de sus respectivos grupos. Si algún grupo queda vacío, se borra.

Parámetros

  • tabIds

    number | [number, ...number[]]

    Es el ID de la pestaña o la lista de IDs de pestañas que se quitarán de sus respectivos grupos.

Muestra

  • Promise<void>

unsplit()

Chrome 155 y versiones posteriores
browser.tabs.unsplit(
  splitViewId: number,
)
: Promise<void>

Separa las pestañas de una vista dividida en pestañas independientes.

Parámetros

  • splitViewId

    número

    Es el ID de la vista dividida que se separará.

Muestra

  • Promise<void>

update()

browser.tabs.update(
  tabId?: number,
  updateProperties: object,
)
: Promise<Tab | undefined>

Modifica las propiedades de una pestaña. Las propiedades que no se especifican en updateProperties no se modifican.

Parámetros

  • tabId

    number opcional

    El valor predeterminado es la pestaña seleccionada de la ventana actual.

  • updateProperties

    objeto

    • activo

      booleano opcional

      Indica si la pestaña debe estar activa. No afecta si la ventana está enfocada (consulta windows.update).

    • autoDiscardable

      booleano opcional

      Chrome 54 y versiones posteriores browser.* desde Chrome 148

      Indica si el navegador debe descartar la pestaña automáticamente cuando los recursos son bajos.

    • destacado

      booleano opcional

      Agrega o quita la pestaña de la selección actual.

    • silenciado

      booleano opcional

      Chrome 45 y versiones posteriores browser.* desde Chrome 148

      Indica si se debe silenciar la pestaña.

    • openerTabId

      number opcional

      Es el ID de la pestaña que abrió esta pestaña. Si se especifica, la pestaña de apertura debe estar en la misma ventana que esta pestaña.

    • marcada

      booleano opcional

      Indica si se debe fijar la pestaña.

    • seleccionado

      booleano opcional

      Obsoleto

      Usa highlighted.

      Indica si se debe seleccionar la pestaña.

    • url

      string opcional

      Es la URL a la que se debe dirigir la pestaña. No se admiten las URLs de JavaScript. En su lugar, usa scripting.executeScript.

Muestra

  • Promise<Tab | undefined>

    Chrome 88 y versiones posteriores browser.* desde Chrome 148

Eventos

onActivated

browser.tabs.onActivated.addListener(
  callback: function,
)

Se activa cuando cambia la pestaña activa en una ventana. Ten en cuenta que es posible que la URL de la pestaña no se establezca en el momento en que se activó este evento, pero puedes escuchar los eventos onUpdated para recibir una notificación cuando se establezca una URL.

Parámetros

  • callback

    función

    El parámetro 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

browser.tabs.onAttached.addListener(
  callback: function,
)

Se activa cuando se adjunta una pestaña a una ventana, por ejemplo, porque se movió entre ventanas.

Parámetros

  • callback

    función

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

    (tabId: number, attachInfo: object) => void

    • tabId

      número

    • attachInfo

      objeto

      • newPosition

        número

      • newWindowId

        número

onCreated

browser.tabs.onCreated.addListener(
  callback: function,
)

Se activa cuando se crea una pestaña. Ten en cuenta que es posible que la URL de la pestaña y la pertenencia al grupo de pestañas no se establezcan en el momento en que se activa este evento, pero puedes escuchar los eventos onUpdated para recibir una notificación cuando se establezca una URL o se agregue la pestaña a un grupo de pestañas.

Parámetros

  • callback

    función

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

    (tab: Tab) => void

    • tabulación

onDetached

browser.tabs.onDetached.addListener(
  callback: function,
)

Se activa cuando se separa una pestaña de una ventana, por ejemplo, porque se movió entre ventanas.

Parámetros

  • callback

    función

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

    (tabId: number, detachInfo: object) => void

    • tabId

      número

    • detachInfo

      objeto

      • oldPosition

        número

      • oldWindowId

        número

onHighlighted

browser.tabs.onHighlighted.addListener(
  callback: function,
)

Se activa cuando cambian las pestañas destacadas o seleccionadas en una ventana.

Parámetros

  • callback

    función

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

    (highlightInfo: object) => void

    • highlightInfo

      objeto

      • tabIds

        number[]

        Todas las pestañas destacadas de la ventana.

      • windowId

        número

        La ventana cuyas pestañas cambiaron.

onMoved

browser.tabs.onMoved.addListener(
  callback: function,
)

Se activa cuando se mueve una pestaña dentro de una ventana. Solo se activa un evento de movimiento, que representa la pestaña que el usuario movió directamente. No se activan eventos de movimiento para las otras pestañas que deben moverse en respuesta a la pestaña que se movió manualmente. Este evento no se activa cuando se mueve una pestaña entre ventanas. Para obtener más detalles, consulta tabs.onDetached.

Parámetros

  • callback

    función

    El parámetro 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

browser.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 se cerró.

onReplaced

browser.tabs.onReplaced.addListener(
  callback: function,
)

Se activa cuando una pestaña se reemplaza por otra debido a la renderización previa o instantánea.

Parámetros

  • callback

    función

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

    (addedTabId: number, removedTabId: number) => void

    • addedTabId

      número

    • removedTabId

      número

onUpdated

browser.tabs.onUpdated.addListener(
  callback: function,
)

Se activa cuando se actualiza una pestaña.

Parámetros

  • callback

    función

    El parámetro 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 browser.* desde Chrome 148

        Es el nuevo estado audible de la pestaña.

      • autoDiscardable

        booleano opcional

        Chrome 54 y versiones posteriores browser.* desde Chrome 148

        Es el nuevo estado de descarte automático de la pestaña.

      • descartado

        booleano opcional

        Chrome 54 y versiones posteriores browser.* desde Chrome 148

        Es el nuevo estado descartado de la pestaña.

      • favIconUrl

        string opcional

        Es la nueva URL del ícono de página de la pestaña.

      • no responde

        booleano opcional

        Chrome 132 y versiones posteriores browser.* desde Chrome 148

        Es el nuevo estado de inactividad de la pestaña.

      • groupId

        number opcional

        Chrome 88 y versiones posteriores browser.* desde Chrome 148

        Es el grupo nuevo de la pestaña.

      • mutedInfo

        MutedInfo opcional

        Chrome 46 y versiones posteriores browser.* desde Chrome 148

        El nuevo estado de silencio de la pestaña y el motivo del cambio.

      • marcada

        booleano opcional

        Es el nuevo estado fijado de la pestaña.

      • splitViewId

        number opcional

        Chrome 140 y versiones posteriores browser.* desde Chrome 148

        La nueva vista dividida de la pestaña.

      • estado

        TabStatus opcional

        Es el estado de carga de la pestaña.

      • título

        string opcional

        Chrome 48 y versiones posteriores browser.* desde Chrome 148

        Es el título nuevo de la pestaña.

      • url

        string opcional

        La URL de la pestaña si cambió.

    • tabulación

onZoomChange

browser.tabs.onZoomChange.addListener(
  callback: function,
)

Se activa cuando se acerca una pestaña.

Parámetros

  • callback

    función

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

    (ZoomChangeInfo: object) => void

    • ZoomChangeInfo

      objeto

      • newZoomFactor

        número

      • oldZoomFactor

        número

      • tabId

        número

      • zoomSettings