browser.tabs

Description

Utilisez l'API chrome.tabs pour interagir avec le système d'onglets du navigateur. Vous pouvez utiliser cette API pour créer, modifier et réorganiser les onglets dans le navigateur.

L'API Tabs offre non seulement des fonctionnalités permettant de manipuler et de gérer les onglets, mais elle peut également détecter la langue de l'onglet, prendre une capture d'écran et communiquer avec les scripts de contenu d'un onglet.

Autorisations

La plupart des fonctionnalités ne nécessitent aucune autorisation. Par exemple : créer un onglet, recharger un onglet, accéder à une autre URL, etc.

Les développeurs doivent connaître trois autorisations lorsqu'ils utilisent l'API Tabs.

Autorisation "tabs"

Cette autorisation ne donne pas accès à l'espace de noms browser.tabs. Au lieu de cela, elle permet à une extension d'appeler tabs.query() sur quatre propriétés sensibles des instances tabs.Tab : url, pendingUrl, title et favIconUrl.

{
  "name": "My extension",
  ...
  "permissions": [
    "tabs"
  ],
  ...
}
Autorisations de l'hôte

Les autorisations d'hôte permettent à une extension de lire et d'interroger les quatre propriétés tabs.Tab sensibles d'un onglet correspondant. Ils peuvent également interagir directement avec les onglets correspondants à l'aide de méthodes telles que tabs.captureVisibleTab(), scripting.executeScript(), scripting.insertCSS() et scripting.removeCSS().

{
  "name": "My extension",
  ...
  "host_permissions": [
    "http://*/*",
    "https://*/*"
  ],
  ...
}
Autorisation "activeTab"

activeTab accorde à une extension une autorisation d'hôte temporaire pour l'onglet actuel en réponse à un appel de l'utilisateur. Contrairement aux autorisations d'hôte, activeTab ne déclenche aucun avertissement.

{
  "name": "My extension",
  ...
  "permissions": [
    "activeTab"
  ],
  ...
}

Cas d'utilisation

Les sections suivantes présentent quelques cas d'utilisation courants.

Ouvrir une page d'extension dans un nouvel onglet

Un modèle courant pour les extensions consiste à ouvrir une page d'intégration dans un nouvel onglet lorsque l'extension est installée. L'exemple suivant montre comment procéder.

background.js:

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

Obtenir l'onglet actuel

Cet exemple montre comment le service worker d'une extension peut récupérer l'onglet actif de la fenêtre actuellement sélectionnée (ou de la fenêtre sélectionnée le plus récemment, si aucune fenêtre Chrome n'est sélectionnée). Il s'agit généralement de l'onglet actuel de l'utilisateur.

  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);
    });
  }

Couper le son de l'onglet spécifié

Cet exemple montre comment une extension peut activer ou désactiver le son d'un onglet donné.

  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" }`);
    });
  }

Déplacer l'onglet actuel vers la première position lorsque l'utilisateur clique dessus

Cet exemple montre comment déplacer un onglet, qu'un glissement soit en cours ou non. Bien que cet exemple utilise browser.tabs.move, vous pouvez utiliser le même modèle d'attente pour d'autres appels qui modifient les onglets pendant qu'un glissement est en cours.

  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.");
      }
    });
  }

Transmettre un message au script de contenu d'un onglet sélectionné

Cet exemple montre comment le service worker d'une extension peut communiquer avec des scripts de contenu dans des onglets de navigateur spécifiques à l'aide de 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.
}

Exemples d'extensions

Pour découvrir d'autres démonstrations d'extensions de l'API Tabs, consultez l'une des ressources suivantes :

Types

MutedInfo

Chrome 46 ou version ultérieure browser.* depuis Chrome 148

État de coupure du son de l'onglet et raison du dernier changement d'état.

Propriétés

  • extensionId

    chaîne facultatif

    ID de l'extension qui a modifié l'état de coupure du son. Non défini si une extension n'est pas à l'origine de la dernière modification de l'état de coupure du son.

  • son coupé

    booléen

    Indique si le son de l'onglet est coupé (empêche la lecture du son). Le son de l'onglet peut être coupé même s'il n'a pas diffusé ou ne diffuse pas de son actuellement. Équivaut à l'affichage de l'indicateur audio "coupé".

  • reason

    MutedInfoReason facultatif

    Raison pour laquelle le son de l'onglet a été coupé ou réactivé. Non défini si l'état de coupure du son de l'onglet n'a jamais été modifié.

MutedInfoReason

Chrome 46 ou version ultérieure browser.* depuis Chrome 148

Événement ayant entraîné un changement d'état de coupure du son.

Énumération

"user"
Une action de saisie de l'utilisateur a défini l'état "coupé".

"capture"
La capture de l'onglet a commencé, ce qui a forcé un changement d'état de coupure du son.

"extension"
Une extension, identifiée par le champ extensionId, a défini l'état de coupure du son.

Tab

Propriétés

  • actif

    booléen

    Indique si l'onglet est actif dans sa fenêtre. Cela ne signifie pas nécessairement que la fenêtre est sélectionnée.

  • audible

    boolean facultatif

    Chrome 45 ou version ultérieure browser.* depuis Chrome 148

    Indique si l'onglet a produit du son au cours des deux dernières secondes (mais il est possible qu'il ne soit pas entendu s'il est également coupé). Équivaut à l'affichage ou non de l'indicateur "audio du haut-parleur".

  • autoDiscardable

    booléen

    Chrome 54 ou version ultérieure browser.* depuis Chrome 148

    Indique si l'onglet peut être supprimé automatiquement par le navigateur lorsque les ressources sont faibles.

  • avez supprimé

    booléen

    Chrome 54 ou version ultérieure browser.* depuis Chrome 148

    Indique si l'onglet est supprimé. Un onglet supprimé est un onglet dont le contenu a été déchargé de la mémoire, mais qui est toujours visible dans la barre d'onglets. Son contenu est actualisé lors de sa prochaine activation.

  • favIconUrl

    chaîne facultatif

    URL du favicon de l'onglet. Cette propriété n'est présente que si l'extension dispose de l'autorisation "tabs" ou d'autorisations d'hôte pour la page. Il peut également s'agir d'une chaîne vide si l'onglet est en cours de chargement.

  • figé

    booléen

    Chrome 132+ browser.* depuis Chrome 148

    Indique si l'onglet est figé. Un onglet figé ne peut pas exécuter de tâches, y compris les gestionnaires d'événements ou les minuteurs. Il est visible dans la bande d'onglets et son contenu est chargé en mémoire. Il est débloqué lors de l'activation.

  • groupId

    nombre

    Chrome 88+ browser.* depuis Chrome 148

    ID du groupe auquel appartient l'onglet.

  • height

    number facultatif

    Hauteur de l'onglet en pixels.

  • en surbrillance

    booléen

    Indique si l'onglet est mis en surbrillance.

  • id

    number facultatif

    ID de l'onglet. Les ID d'onglet sont uniques au sein d'une session de navigateur. Dans certains cas, il est possible qu'aucun ID ne soit attribué à un onglet, par exemple lors de l'interrogation d'onglets étrangers à l'aide de l'API sessions. Dans ce cas, un ID de session peut être présent. L'ID d'onglet peut également être défini sur chrome.tabs.TAB_ID_NONE pour les applications et les fenêtres des outils de développement.

  • navigation privée

    booléen

    Indique si l'onglet se trouve dans une fenêtre de navigation privée.

  • index

    nombre

    Index basé sur zéro de l'onglet dans sa fenêtre.

  • lastAccessed

    nombre

    Chrome 121+ browser.* depuis Chrome 148

    Dernière fois que l'onglet est devenu actif dans sa fenêtre, en millisecondes depuis l'epoch.

  • mutedInfo

    MutedInfo facultatif

    Chrome 46 ou version ultérieure browser.* depuis Chrome 148

    État de coupure du son de l'onglet et raison du dernier changement d'état.

  • openerTabId

    number facultatif

    ID de l'onglet qui a ouvert cet onglet, le cas échéant. Cette propriété n'est présente que si l'onglet d'ouverture existe toujours.

  • pendingUrl

    chaîne facultatif

    Chrome 79 et versions ultérieures browser.* depuis Chrome 148

    URL vers laquelle l'onglet navigue, avant qu'il ne soit validé. Cette propriété n'est présente que si l'extension dispose de l'autorisation "tabs" ou d'autorisations d'hôte pour la page, et qu'une navigation est en attente.

  • épinglé

    booléen

    Indique si l'onglet est épinglé.

  • sélectionné

    booléen

    Obsolète

    Veuillez utiliser tabs.Tab.highlighted.

    Indique si l'onglet est sélectionné.

  • sessionId

    chaîne facultatif

    ID de session permettant d'identifier de manière unique un onglet obtenu à partir de l'API sessions.

  • splitViewId

    number facultatif

    Chrome 140+ browser.* depuis Chrome 148

    ID de la vue fractionnée à laquelle appartient l'onglet.

  • état

    TabStatus facultatif

    État de chargement de l'onglet.

  • titre

    chaîne facultatif

    Titre de l'onglet. Cette propriété n'est présente que si l'extension dispose de l'autorisation "tabs" ou d'autorisations d'hôte pour la page.

  • url

    chaîne facultatif

    Dernière URL validée du frame principal de l'onglet. Cette propriété n'est présente que si l'extension dispose de l'autorisation "tabs" ou d'autorisations d'hôte pour la page. Il peut s'agir d'une chaîne vide si l'onglet n'a pas encore été validé. Voir aussi Tab.pendingUrl.

  • width

    number facultatif

    Largeur de l'onglet en pixels.

  • windowId

    nombre

    ID de la fenêtre contenant l'onglet.

TabStatus

Chrome 44+ browser.* depuis Chrome 148

État de chargement de l'onglet.

Énumération

"unloaded"

"loading"

"complete"

WindowType

Chrome 44+ browser.* depuis Chrome 148

Type de fenêtre.

Énumération

"normal"

"popup"

"panel"

"app"

"devtools"

ZoomSettings

Définit la manière dont les modifications du zoom dans un onglet sont gérées et à quel niveau.

Propriétés

  • defaultZoomFactor

    number facultatif

    Chrome 43 et versions ultérieures browser.* depuis Chrome 148

    Utilisé pour renvoyer le niveau de zoom par défaut de l'onglet actuel dans les appels à tabs.getZoomSettings.

  • mode

    ZoomSettingsMode facultatif

    Définit la manière dont les modifications du niveau de zoom sont gérées, c'est-à-dire l'entité responsable de la mise à l'échelle de la page. La valeur par défaut est automatic.

  • champ d'application

    ZoomSettingsScope facultatif

    Définit si les modifications du zoom sont conservées pour l'origine de la page ou si elles ne s'appliquent qu'à cet onglet. La valeur par défaut est per-origin en mode automatic, et per-tab dans les autres cas.

ZoomSettingsMode

Chrome 44+ browser.* depuis Chrome 148

Définit la manière dont les modifications du niveau de zoom sont gérées, c'est-à-dire l'entité responsable de la mise à l'échelle de la page. La valeur par défaut est automatic.

Énumération

"automatic"
Les modifications du niveau de zoom sont gérées automatiquement par le navigateur.

"manual"
Remplace la gestion automatique des changements de zoom. L'événement onZoomChange sera toujours distribué, et il incombe à l'extension d'écouter cet événement et de redimensionner manuellement la page. Ce mode n'est pas compatible avec le zoom per-origin. Il ignore donc le paramètre de zoom scope et suppose per-tab.

"disabled"
Désactive tout zoom dans l'onglet. L'onglet revient au niveau de zoom par défaut, et toutes les tentatives de modification du zoom sont ignorées.

ZoomSettingsScope

Chrome 44+ browser.* depuis Chrome 148

Définit si les modifications du zoom sont conservées pour l'origine de la page ou si elles ne s'appliquent qu'à cet onglet. La valeur par défaut est per-origin en mode automatic, et per-tab dans les autres cas.

Énumération

"per-origin"
Les modifications du zoom sont conservées dans l'origine de la page zoomée, c'est-à-dire que tous les autres onglets accédant à cette même origine sont également zoomés. De plus, les modifications du zoom per-origin sont enregistrées avec l'origine, ce qui signifie que lorsque vous accédez à d'autres pages de la même origine, elles sont toutes zoomées avec le même facteur de zoom. Le champ d'application per-origin n'est disponible qu'en mode automatic.

"per-tab"
Les modifications du niveau de zoom ne prennent effet que dans cet onglet, et les modifications du niveau de zoom dans d'autres onglets n'affectent pas le niveau de zoom de cet onglet. De plus, les modifications du zoom per-tab sont réinitialisées lors de la navigation. La navigation dans un onglet charge toujours les pages avec leurs facteurs de zoom per-origin.

Propriétés

MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND

Chrome 92+ browser.* depuis Chrome 148

Nombre maximal de fois où captureVisibleTab peut être appelé par seconde. captureVisibleTab est coûteux et ne doit pas être appelé trop souvent.

Valeur

2

SPLIT_VIEW_ID_NONE

Chrome 140+ browser.* depuis Chrome 148

ID représentant l'absence d'onglet partagé.

Valeur

-1

TAB_ID_NONE

Chrome 46 ou version ultérieure browser.* depuis Chrome 148

ID représentant l'absence d'un onglet de navigateur.

Valeur

-1

TAB_INDEX_NONE

Chrome 123+ browser.* depuis Chrome 148

Index représentant l'absence d'un index d'onglet dans une barre d'onglets.

Valeur

-1

Méthodes

captureVisibleTab()

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

Capture la zone visible de l'onglet actuellement actif dans la fenêtre spécifiée. Pour appeler cette méthode, l'extension doit disposer de l'autorisation <all_urls> ou activeTab. En plus des sites auxquels les extensions peuvent normalement accéder, cette méthode permet aux extensions de capturer des sites sensibles qui sont normalement restreints, y compris les pages du schéma chrome:, les pages d'autres extensions et les URL data:. Ces sites sensibles ne peuvent être capturés qu'avec l'autorisation activeTab. Les URL de fichiers ne peuvent être capturées que si l'extension a été autorisée à accéder aux fichiers.

Paramètres

Renvoie

  • Promise<string>

    Chrome 88+ browser.* depuis Chrome 148

connect()

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

Se connecte aux scripts de contenu de l'onglet spécifié. L'événement runtime.onConnect est déclenché dans chaque script de contenu exécuté dans l'onglet spécifié pour l'extension actuelle. Pour en savoir plus, consultez Messagerie de script de contenu.

Paramètres

  • tabId

    nombre

  • connectInfo

    objet facultatif

    • documentId

      chaîne facultatif

      Chrome 106 et versions ultérieures browser.* depuis Chrome 148

      Ouvre un port vers un document spécifique identifié par documentId au lieu de tous les cadres de l'onglet.

    • frameId

      number facultatif

      Ouvrez un port vers un frame spécifique identifié par frameId au lieu de tous les frames de l'onglet.

    • nom

      chaîne facultatif

      Est transmis à onConnect pour les scripts de contenu qui écoutent l'événement de connexion.

Renvoie

  • Port pouvant être utilisé pour communiquer avec les scripts de contenu exécutés dans l'onglet spécifié. L'événement runtime.Port du port est déclenché si l'onglet se ferme ou n'existe pas.

create()

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

Crée un onglet.

Paramètres

  • createProperties

    objet

    • actif

      boolean facultatif

      Indique si l'onglet doit devenir l'onglet actif de la fenêtre. N'affecte pas la sélection de la fenêtre (voir windows.update). La valeur par défaut est true.

    • index

      number facultatif

      Position que l'onglet doit prendre dans la fenêtre. La valeur fournie est limitée à une valeur comprise entre zéro et le nombre d'onglets dans la fenêtre.

    • openerTabId

      number facultatif

      ID de l'onglet qui a ouvert cet onglet. S'il est spécifié, l'onglet d'ouverture doit se trouver dans la même fenêtre que l'onglet nouvellement créé.

    • épinglé

      boolean facultatif

      Indique si l'onglet doit être épinglé. La valeur par défaut est false.

    • sélectionné

      boolean facultatif

      Obsolète

      Veuillez utiliser active.

      Indique si l'onglet doit devenir l'onglet sélectionné dans la fenêtre. La valeur par défaut est true.

    • splitWithTabId

      number facultatif

      Chrome 155 ou version ultérieure

      ID d'un onglet existant avec lequel créer une vue fractionnée. S'il est spécifié, l'onglet de fractionnement doit remplir les conditions suivantes :

      • Il ne doit pas s'agir d'un onglet déjà scindé.
      • Il doit se trouver dans la même fenêtre que l'onglet que vous venez de créer.
      • Si windowId est spécifié, il doit être identique à l'ID de la fenêtre de l'onglet de division.
      • Si index est spécifié, il doit s'agir d'un index adjacent à l'onglet de division et il affectera l'emplacement relatif de l'onglet nouvellement créé.
    • url

      chaîne facultatif

      URL vers laquelle l'onglet doit initialement naviguer. Les URL complètes doivent inclure un schéma (par exemple, "http://www.google.com", et non "www.google.com"). Les URL relatives sont relatives à la page actuelle dans l'extension. La page "Nouvel onglet" est définie par défaut.

    • windowId

      number facultatif

      Fenêtre dans laquelle créer l'onglet. La valeur par défaut est la fenêtre actuelle.

Renvoie

  • Promise<Tab>

    Chrome 88+ browser.* depuis Chrome 148

createSplit()

Chrome 155 ou version ultérieure
browser.tabs.createSplit(
  tabIds: [number, number],
)
: Promise<number>

Divise deux onglets existants en une vue fractionnée.

Paramètres

  • tabIds

    [number, number]

    Un tableau contenant exactement deux ID d'onglets à associer dans une vue fractionnée. Tous les onglets doivent remplir les conditions suivantes :

    Ils doivent être adjacents. Elles ne doivent pas déjà être en vue fractionnée. Ils doivent avoir des états windowId, pinned et groupId correspondants.

Renvoie

  • Promise<number>

detectLanguage()

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

Détecte la langue principale du contenu d'un onglet.

Paramètres

  • tabId

    number facultatif

    La valeur par défaut est l'onglet actif de la fenêtre actuelle.

Renvoie

  • Promise<string>

    Chrome 88+ browser.* depuis Chrome 148

discard()

Chrome 54 ou version ultérieure browser.* depuis Chrome 148
browser.tabs.discard(
  tabId?: number,
)
: Promise<Tab | undefined>

Supprime un onglet de la mémoire. Les onglets supprimés restent visibles dans la bande d'onglets et sont actualisés lorsqu'ils sont activés.

Paramètres

  • tabId

    number facultatif

    ID de l'onglet à supprimer. Si cette option est spécifiée, l'onglet est supprimé, sauf s'il est actif ou s'il a déjà été supprimé. Si cette option est omise, le navigateur supprime l'onglet le moins important. Cette opération peut échouer si aucun onglet supprimable n'existe.

Renvoie

  • Promise<Tab | undefined>

    Chrome 88+ browser.* depuis Chrome 148

    Se résout une fois l'opération terminée.

duplicate()

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

Duplique un onglet.

Paramètres

  • tabId

    nombre

    ID de l'onglet à dupliquer.

Renvoie

  • Promise<Tab | undefined>

    Chrome 88+ browser.* depuis Chrome 148

get()

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

Récupère les détails de l'onglet spécifié.

Paramètres

  • tabId

    nombre

Renvoie

  • Promise<Tab>

    Chrome 88+ browser.* depuis Chrome 148

getCurrent()

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

Récupère l'onglet à partir duquel cet appel de script est effectué. Renvoie undefined si l'appel est effectué depuis un contexte autre qu'un onglet (par exemple, une page d'arrière-plan ou une vue pop-up).

Renvoie

  • Promise<Tab | undefined>

    Chrome 88+ browser.* depuis Chrome 148

getZoom()

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

Récupère le facteur de zoom actuel d'un onglet spécifié.

Paramètres

  • tabId

    number facultatif

    ID de l'onglet à partir duquel obtenir le facteur de zoom actuel. Par défaut, il s'agit de l'onglet actif de la fenêtre actuelle.

Renvoie

  • Promise<number>

    Chrome 88+ browser.* depuis Chrome 148

    Se résout avec le facteur de zoom actuel de l'onglet après sa récupération.

getZoomSettings()

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

Récupère les paramètres de zoom actuels d'un onglet spécifié.

Paramètres

  • tabId

    number facultatif

    ID de l'onglet à partir duquel obtenir les paramètres de zoom actuels. La valeur par défaut est l'onglet actif de la fenêtre actuelle.

Renvoie

  • Promise<ZoomSettings>

    Chrome 88+ browser.* depuis Chrome 148

    Se résout avec les paramètres de zoom actuels de l'onglet.

goBack()

Navigateur Chrome 72 ou version ultérieure * depuis Chrome 148
browser.tabs.goBack(
  tabId?: number,
)
: Promise<void>

Revenir à la page précédente, si elle est disponible.

Paramètres

  • tabId

    number facultatif

    ID de l'onglet auquel revenir. Par défaut, il s'agit de l'onglet sélectionné de la fenêtre actuelle.

Renvoie

  • Promise<void>

    Chrome 88+ browser.* depuis Chrome 148

goForward()

Navigateur Chrome 72 ou version ultérieure * depuis Chrome 148
browser.tabs.goForward(
  tabId?: number,
)
: Promise<void>

Accéder à la page suivante, si elle est disponible.

Paramètres

  • tabId

    number facultatif

    ID de l'onglet vers lequel naviguer. Par défaut, il s'agit de l'onglet sélectionné de la fenêtre actuelle.

Renvoie

  • Promise<void>

    Chrome 88+ browser.* depuis Chrome 148

group()

Chrome 88+ browser.* depuis Chrome 148
browser.tabs.group(
  options: object,
)
: Promise<number>

Ajoute un ou plusieurs onglets à un groupe spécifié ou, si aucun groupe n'est spécifié, ajoute les onglets donnés à un groupe nouvellement créé.

Paramètres

  • options

    objet

    • createProperties

      objet facultatif

      Configurations pour créer un groupe. Ne peut pas être utilisé si groupId est déjà spécifié.

      • windowId

        number facultatif

        Fenêtre du nouveau groupe La valeur par défaut est la fenêtre actuelle.

    • groupId

      number facultatif

      ID du groupe auquel ajouter les onglets. Si vous n'en spécifiez aucun, un groupe sera créé.

    • tabIds

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

      ID de l'onglet ou liste des ID d'onglets à ajouter au groupe spécifié.

Renvoie

  • Promise<number>

highlight()

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

Met en surbrillance les onglets indiqués et sélectionne le premier du groupe. Semble n'avoir aucun effet si l'onglet spécifié est actuellement actif.

Paramètres

  • highlightInfo

    objet

    • tabs

      number | number[]

      Un ou plusieurs indices d'onglets à mettre en surbrillance.

    • windowId

      number facultatif

      Fenêtre contenant les onglets.

Renvoie

move()

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

Déplace un ou plusieurs onglets vers une nouvelle position dans sa fenêtre ou vers une nouvelle fenêtre. Notez que les onglets ne peuvent être déplacés que vers et depuis des fenêtres normales (window.type === "normal").

Paramètres

  • tabIds

    number | number[]

    ID de l'onglet ou liste des ID des onglets à déplacer.

  • moveProperties

    objet

    • index

      nombre

      Position vers laquelle déplacer la fenêtre. Utilisez -1 pour placer l'onglet à la fin de la fenêtre.

    • windowId

      number facultatif

      La valeur par défaut est la fenêtre dans laquelle l'onglet se trouve actuellement.

Renvoie

  • Promise<Tab | Tab[]>

    Chrome 88+ browser.* depuis Chrome 148

query()

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

Récupère tous les onglets qui possèdent les propriétés spécifiées, ou tous les onglets si aucune propriété n'est spécifiée.

Paramètres

  • queryInfo

    objet

    • actif

      boolean facultatif

      Indique si les onglets sont actifs dans leurs fenêtres.

    • audible

      boolean facultatif

      Chrome 45 ou version ultérieure browser.* depuis Chrome 148

      Indique si les onglets sont audibles.

    • autoDiscardable

      boolean facultatif

      Chrome 54 ou version ultérieure browser.* depuis Chrome 148

      Indique si les onglets peuvent être supprimés automatiquement par le navigateur lorsque les ressources sont faibles.

    • currentWindow

      boolean facultatif

      Indique si les onglets se trouvent dans la fenêtre actuelle.

    • avez supprimé

      boolean facultatif

      Chrome 54 ou version ultérieure browser.* depuis Chrome 148

      Indique si les onglets sont supprimés. Un onglet supprimé est un onglet dont le contenu a été déchargé de la mémoire, mais qui est toujours visible dans la barre d'onglets. Son contenu est actualisé lors de sa prochaine activation.

    • figé

      boolean facultatif

      Chrome 132+ browser.* depuis Chrome 148

      Indique si les onglets sont figés. Un onglet figé ne peut pas exécuter de tâches, y compris les gestionnaires d'événements ou les minuteurs. Il est visible dans la bande d'onglets et son contenu est chargé en mémoire. Il est débloqué lors de l'activation.

    • groupId

      number facultatif

      Chrome 88+ browser.* depuis Chrome 148

      ID du groupe dans lequel se trouvent les onglets, ou tabGroups.TAB_GROUP_ID_NONE pour les onglets non regroupés.

    • en surbrillance

      boolean facultatif

      Indique si les onglets sont mis en surbrillance.

    • index

      number facultatif

      La position des onglets dans leurs fenêtres.

    • lastFocusedWindow

      boolean facultatif

      Indique si les onglets se trouvent dans la dernière fenêtre sélectionnée.

    • son coupé

      boolean facultatif

      Chrome 45 ou version ultérieure browser.* depuis Chrome 148

      Indique si le son des onglets est coupé.

    • épinglé

      boolean facultatif

      Indique si les onglets sont épinglés.

    • splitViewId

      number facultatif

      Chrome 140+ browser.* depuis Chrome 148

      ID de la vue fractionnée dans laquelle se trouvent les onglets, ou tabs.SPLIT_VIEW_ID_NONE pour les onglets qui ne se trouvent pas dans une vue fractionnée.

    • état

      TabStatus facultatif

      État de chargement de l'onglet.

    • titre

      chaîne facultatif

      Mettre en correspondance les titres de la page avec un format. Cette propriété est ignorée si l'extension ne dispose pas de l'autorisation "tabs" ou des autorisations d'hôte pour la page.

    • url

      string | string[] facultatif

      Faites correspondre les onglets à un ou plusieurs formats d'URL. Les identificateurs de fragments ne sont pas mis en correspondance. Cette propriété est ignorée si l'extension ne dispose pas de l'autorisation "tabs" ou des autorisations d'hôte pour la page.

    • windowId

      number facultatif

      ID de la fenêtre parente, ou windows.WINDOW_ID_CURRENT pour la fenêtre actuelle.

    • windowType

      WindowType facultatif

      Type de fenêtre dans laquelle se trouvent les onglets.

Renvoie

  • Promise<Tab[]>

    Chrome 88+ browser.* depuis Chrome 148

reload()

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

Actualiser un onglet

Paramètres

  • tabId

    number facultatif

    ID de l'onglet à actualiser. Par défaut, il s'agit de l'onglet sélectionné de la fenêtre actuelle.

  • reloadProperties

    objet facultatif

    • bypassCache

      boolean facultatif

      Indique si la mise en cache locale doit être ignorée. La valeur par défaut est false.

Renvoie

  • Promise<void>

    Chrome 88+ browser.* depuis Chrome 148

remove()

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

Ferme un ou plusieurs onglets.

Paramètres

  • tabIds

    number | number[]

    ID de l'onglet ou liste des ID des onglets à fermer.

Renvoie

  • Promise<void>

    Chrome 88+ browser.* depuis Chrome 148

sendMessage()

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

Envoie un seul message aux scripts de contenu de l'onglet spécifié. L'événement runtime.onMessage est déclenché dans chaque script de contenu exécuté dans l'onglet spécifié pour l'extension actuelle.

Paramètres

  • tabId

    nombre

  • message

    tous

    Message à envoyer. Ce message doit être un objet JSON-ifiable.

  • options

    objet facultatif

    • documentId

      chaîne facultatif

      Chrome 106 et versions ultérieures browser.* depuis Chrome 148

      Envoyez un message à un document spécifique identifié par documentId au lieu de tous les cadres de l'onglet.

    • frameId

      number facultatif

      Envoyez un message à un frame spécifique identifié par frameId au lieu de tous les frames de l'onglet.

Renvoie

  • Promise<any>

    Chrome 99+ browser.* depuis Chrome 148

    Promesse qui se résout avec la réponse du script de contenu. Si une erreur se produit lors de la connexion à l'onglet spécifié, la promesse sera rejetée.

setZoom()

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

Effectue un zoom sur un onglet spécifié.

Paramètres

  • tabId

    number facultatif

    ID de l'onglet à zoomer. Par défaut, il s'agit de l'onglet actif de la fenêtre actuelle.

  • zoomFactor

    nombre

    Nouveau facteur de zoom. La valeur 0 définit l'onglet sur son facteur de zoom par défaut actuel. Les valeurs supérieures à 0 spécifient un facteur de zoom (éventuellement différent de celui par défaut) pour l'onglet.

Renvoie

  • Promise<void>

    Chrome 88+ browser.* depuis Chrome 148

    Se résout une fois que le facteur de zoom a été modifié.

setZoomSettings()

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

Définit les paramètres de zoom d'un onglet spécifié, qui déterminent la façon dont les modifications de zoom sont gérées. Ces paramètres sont réinitialisés lorsque vous quittez l'onglet.

Paramètres

  • tabId

    number facultatif

    ID de l'onglet dont vous souhaitez modifier les paramètres de zoom. Par défaut, il s'agit de l'onglet actif de la fenêtre actuelle.

  • zoomSettings

    Définit la manière dont les modifications du zoom sont gérées et à quel niveau.

Renvoie

  • Promise<void>

    Chrome 88+ browser.* depuis Chrome 148

    Se résout une fois les paramètres de zoom modifiés.

ungroup()

Chrome 88+ browser.* depuis Chrome 148
browser.tabs.ungroup(
  tabIds: number | [number, ...number[]],
)
: Promise<void>

Supprime un ou plusieurs onglets de leurs groupes respectifs. Si des groupes deviennent vides, ils sont supprimés.

Paramètres

  • tabIds

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

    ID de l'onglet ou liste des ID des onglets à supprimer de leurs groupes respectifs.

Renvoie

  • Promise<void>

unsplit()

Chrome 155 ou version ultérieure
browser.tabs.unsplit(
  splitViewId: number,
)
: Promise<void>

Sépare les onglets d'une vue fractionnée en onglets indépendants.

Paramètres

  • splitViewId

    nombre

    ID de la vue fractionnée à séparer.

Renvoie

  • Promise<void>

update()

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

Modifie les propriétés d'un onglet. Les propriétés qui ne sont pas spécifiées dans updateProperties ne sont pas modifiées.

Paramètres

  • tabId

    number facultatif

    La valeur par défaut est l'onglet sélectionné de la fenêtre actuelle.

  • updateProperties

    objet

    • actif

      boolean facultatif

      Indique si l'onglet doit être actif. N'affecte pas la sélection de la fenêtre (voir windows.update).

    • autoDiscardable

      boolean facultatif

      Chrome 54 ou version ultérieure browser.* depuis Chrome 148

      Indique si l'onglet doit être automatiquement supprimé par le navigateur lorsque les ressources sont faibles.

    • en surbrillance

      boolean facultatif

      Ajoute l'onglet à la sélection actuelle ou l'en supprime.

    • son coupé

      boolean facultatif

      Chrome 45 ou version ultérieure browser.* depuis Chrome 148

      Indique si l'onglet doit être coupé.

    • openerTabId

      number facultatif

      ID de l'onglet qui a ouvert cet onglet. Si cette propriété est spécifiée, l'onglet d'ouverture doit se trouver dans la même fenêtre que cet onglet.

    • épinglé

      boolean facultatif

      Indique si l'onglet doit être épinglé.

    • sélectionné

      boolean facultatif

      Obsolète

      Veuillez utiliser highlighted.

      Indique si l'onglet doit être sélectionné.

    • url

      chaîne facultatif

      URL vers laquelle l'onglet doit naviguer. Les URL JavaScript ne sont pas acceptées. Utilisez plutôt scripting.executeScript.

Renvoie

  • Promise<Tab | undefined>

    Chrome 88+ browser.* depuis Chrome 148

Événements

onActivated

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

Se déclenche lorsque l'onglet actif d'une fenêtre change. Notez que l'URL de l'onglet n'est peut-être pas définie au moment où cet événement est déclenché, mais vous pouvez écouter les événements onUpdated pour être averti lorsqu'une URL est définie.

Paramètres

  • callback

    fonction

    Le paramètre callback se présente comme suit :

    (activeInfo: object) => void

    • activeInfo

      objet

      • tabId

        nombre

        ID de l'onglet qui est devenu actif.

      • windowId

        nombre

        ID de la fenêtre dans laquelle l'onglet actif a changé.

onAttached

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

Se déclenche lorsqu'un onglet est associé à une fenêtre, par exemple parce qu'il a été déplacé d'une fenêtre à une autre.

Paramètres

  • callback

    fonction

    Le paramètre callback se présente comme suit :

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

    • tabId

      nombre

    • attachInfo

      objet

      • newPosition

        nombre

      • newWindowId

        nombre

onCreated

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

Déclenché lorsqu'un onglet est créé. Notez que l'URL de l'onglet et l'appartenance au groupe d'onglets peuvent ne pas être définies au moment où cet événement est déclenché, mais vous pouvez écouter les événements onUpdated pour être averti lorsqu'une URL est définie ou que l'onglet est ajouté à un groupe d'onglets.

Paramètres

  • callback

    fonction

    Le paramètre callback se présente comme suit :

    (tab: Tab) => void

onDetached

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

Se déclenche lorsqu'un onglet est dissocié d'une fenêtre, par exemple parce qu'il a été déplacé entre des fenêtres.

Paramètres

  • callback

    fonction

    Le paramètre callback se présente comme suit :

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

    • tabId

      nombre

    • detachInfo

      objet

      • oldPosition

        nombre

      • oldWindowId

        nombre

onHighlighted

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

Se déclenche lorsque les onglets mis en surbrillance ou sélectionnés dans une fenêtre changent.

Paramètres

  • callback

    fonction

    Le paramètre callback se présente comme suit :

    (highlightInfo: object) => void

    • highlightInfo

      objet

      • tabIds

        number[]

        Tous les onglets mis en surbrillance dans la fenêtre.

      • windowId

        nombre

        Fenêtre dont les onglets ont été modifiés.

onMoved

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

Se déclenche lorsqu'un onglet est déplacé dans une fenêtre. Un seul événement de déplacement est déclenché, représentant l'onglet que l'utilisateur a directement déplacé. Les événements de déplacement ne sont pas déclenchés pour les autres onglets qui doivent être déplacés en réponse à l'onglet déplacé manuellement. Cet événement n'est pas déclenché lorsqu'un onglet est déplacé d'une fenêtre à une autre. Pour en savoir plus, consultez tabs.onDetached.

Paramètres

  • callback

    fonction

    Le paramètre callback se présente comme suit :

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

    • tabId

      nombre

    • moveInfo

      objet

      • fromIndex

        nombre

      • toIndex

        nombre

      • windowId

        nombre

onRemoved

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

Déclenché lorsqu'un onglet est fermé.

Paramètres

  • callback

    fonction

    Le paramètre callback se présente comme suit :

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

    • tabId

      nombre

    • removeInfo

      objet

      • isWindowClosing

        booléen

        "True" lorsque l'onglet a été fermé, car sa fenêtre parente a été fermée.

      • windowId

        nombre

        Fenêtre dont l'onglet est fermé.

onReplaced

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

Se déclenche lorsqu'un onglet est remplacé par un autre en raison d'un prérendu ou d'un instantané.

Paramètres

  • callback

    fonction

    Le paramètre callback se présente comme suit :

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

    • addedTabId

      nombre

    • removedTabId

      nombre

onUpdated

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

Déclenché lorsqu'un onglet est mis à jour.

Paramètres

  • callback

    fonction

    Le paramètre callback se présente comme suit :

    (tabId: number, changeInfo: object, tab: Tab) => void

    • tabId

      nombre

    • changeInfo

      objet

      • audible

        boolean facultatif

        Chrome 45 ou version ultérieure browser.* depuis Chrome 148

        Nouvel état sonore de l'onglet.

      • autoDiscardable

        boolean facultatif

        Chrome 54 ou version ultérieure browser.* depuis Chrome 148

        Nouvel état d'abandon automatique de l'onglet.

      • avez supprimé

        boolean facultatif

        Chrome 54 ou version ultérieure browser.* depuis Chrome 148

        Nouvel état d'abandon de l'onglet.

      • favIconUrl

        chaîne facultatif

        Nouvelle URL du favicon de l'onglet.

      • figé

        boolean facultatif

        Chrome 132+ browser.* depuis Chrome 148

        Nouvel état figé de l'onglet.

      • groupId

        number facultatif

        Chrome 88+ browser.* depuis Chrome 148

        Nouveau groupe de l'onglet.

      • mutedInfo

        MutedInfo facultatif

        Chrome 46 ou version ultérieure browser.* depuis Chrome 148

        Le nouvel état de coupure du son de l'onglet et la raison de la modification.

      • épinglé

        boolean facultatif

        Nouvel état d'épinglage de l'onglet.

      • splitViewId

        number facultatif

        Chrome 140+ browser.* depuis Chrome 148

        La nouvelle vue fractionnée de l'onglet.

      • état

        TabStatus facultatif

        État de chargement de l'onglet.

      • titre

        chaîne facultatif

        Chrome 48+ browser.* depuis Chrome 148

        Nouveau titre de l'onglet.

      • url

        chaîne facultatif

        L'URL de l'onglet si elle a changé.

    • tabulation

onZoomChange

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

Se déclenche lorsqu'un zoom est effectué sur un onglet.

Paramètres

  • callback

    fonction

    Le paramètre callback se présente comme suit :

    (ZoomChangeInfo: object) => void

    • ZoomChangeInfo

      objet

      • newZoomFactor

        nombre

      • oldZoomFactor

        nombre

      • tabId

        nombre

      • zoomSettings