sidebarAction.setPanel()
========================

Définit le panneau de la barre latérale: c'est-à-dire le document HTML qui définit le contenu de cette barre latérale.

Types de panneau
----------------

Les barres latérales ont toujours un *"panneau manifest"*, qui est le panneau défini dans la clé de manifest `sidebar_action`.

Si vous définissez un nouveau panneau à l'aide de `setPanel()`, et incluez l'option `tabId` le panneau est défini uniquement pour l'onglet donné. Ce panneau est appelé "tab-specific panel".

Si vous définissez un nouveau panneau en utilisant `setPanel()`, et incluez l'option `windowId`, alors le panneau n'est défini que pour la fenêtre donnée. Ce panneau est appelé *"panneau spécifique à la fenêtre"*, et apparaîtra dans tous les onglets de cette fenêtre qui n'ont pas d'ensemble de panneaux spécifiques aux onglets.

Si vous définissez un nouveau panneau en utilisant `setPanel()`, et omettez les options `tabId` et `windowId`, alors ceci définit le *"panneau global"*. Le panneau global apparaîtra alors dans tous les onglets qui n'ont pas d'ensemble de panneaux spécifiques aux onglets et dont la fenêtre n'a pas de panneau spécifique à une fenêtre.

Syntaxe
-------


```js
browser.sidebarAction.setPanel(
  details, // object
);
```

### Paramètres

`details`

`object`. Un objet avec les propriétés suivantes :

`panel`

`string` ou `null`. Le panneau à charger dans la barre latérale, spécifié comme une URL pointant vers un document HTML, ou `null`, ou une chaîne vide.

Ceci peut pointer vers un fichier empaqueté dans l'extension (for exemple, créé à l'aide de `runtime.getURL`), ou un document distant (par exemple `https://example.org/`). Il doit s'agir d'une URL valide.

Si `panel` est `null` ou `""`,alors un panneau précédemment défini sera supprimé, de sorte que :

* Si `tabId` est spécifié, et que l'onglet a un jeu de panneaux spécifiques aux onglets, alors l'onglet héritera du panneau à partir de la fenêtre à laquelle il appartient.
* Si `windowId` est spécifié, et que la fenêtre a un jeu de panneaux spécifiques à la fenêtre, alors la fenêtre héritera du panneau global.
* Sinon, le panneau global sera réinitialisé au panneau manifest.

`tabId`Facultatif

`integer`. Définit le panneau uniquement pour l'onglet donné.

`windowId` Facultatif

`integer`. Définit le panneau uniquement pour la fenêtre donnée.



* Si `windowId` et `tabId` sont tous les deux spécifiés, la fonction échoue et le panneau n'est pas défini.
* Si `windowId` et `tabId` sont tous les deux omis, le panneau global est défini.
Exemples
--------

Ce code bascule le document de la barre latérale lorsque l'utilisateur clique sur une action du navigateur :


```js
var thisPanel = browser.runtime.getURL("/this.html");
var thatPanel = browser.runtime.getURL("/that.html");

function toggle(panel) {
  if (panel === thisPanel) {
    browser.sidebarAction.setPanel({ panel: thatPanel });
  } else {
    browser.sidebarAction.setPanel({ panel: thisPanel });
  }
}

browser.browserAction.onClicked.addListener(() => {
  browser.sidebarAction.getPanel({}).then(toggle);
});
```

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

**Note :**

Cette API est basée sur l'API Opera `chrome.sidebarAction`.

Les données de compatibilité relatives à Microsoft Edge sont fournies par Microsoft Corporation et incluses ici sous la licence Creative Commons Attribution 3.0 pour les États-Unis.