Description
Utilisez les actions du navigateur pour placer des icônes dans la barre d'outils principale de Google Chrome, à droite de la barre d'adresse. En plus de son icône, une action du navigateur peut avoir une info-bulle, un badge et un pop-up.
Disponibilité
Dans l'illustration suivante, le carré multicolore à droite de la barre d'adresse est l'icône d'une action du navigateur. Un pop-up s'affiche sous l'icône.
Si vous souhaitez créer une icône qui n'est pas toujours active, utilisez une action de page au lieu d'une action de navigateur.
Fichier manifeste
Enregistrez l'action de votre navigateur dans le fichier manifeste de l'extension comme suit :
{ "name": "My extension", ... "browser_action": { "default_icon": { // optional "16": "images/icon16.png", // optional "24": "images/icon24.png", // optional "32": "images/icon32.png" // optional }, "default_title": "Google Mail", // optional, shown in tooltip "default_popup": "popup.html" // optional }, ... }
Vous pouvez fournir une icône de n'importe quelle taille à utiliser dans Chrome. Chrome sélectionnera la plus proche et la mettra à l'échelle à la taille appropriée pour remplir l'espace de 16 dip. Toutefois, si la taille exacte n'est pas fournie, cette mise à l'échelle peut entraîner une perte de détails ou un flou de l'icône.
Les appareils avec des facteurs d'échelle moins courants, comme 1,5x ou 1,2x, devenant de plus en plus répandus, nous vous encourageons à fournir plusieurs tailles pour vos icônes. Cela garantit également que si la taille d'affichage de l'icône est modifiée, vous n'aurez pas besoin de fournir d'autres icônes.
L'ancienne syntaxe pour enregistrer l'icône par défaut est toujours acceptée :
{ "name": "My extension", ... "browser_action": { ... "default_icon": "images/icon32.png" // optional // equivalent to "default_icon": { "32": "images/icon32.png" } }, ... }
Éléments de l'interface utilisateur
Une action du navigateur peut avoir une icône, une info-bulle, un badge et un pop-up.
Icône
Les icônes d'action du navigateur dans Chrome mesurent 16 dips (pixels indépendants de la densité) de large et de haut. Les icônes plus grandes sont redimensionnées pour s'adapter, mais pour de meilleurs résultats, utilisez une icône carrée de 16 dip.
Vous pouvez définir l'icône de deux manières : à l'aide d'une image statique ou à l'aide de l'élément canvas HTML5. L'utilisation d'images statiques est plus facile pour les applications simples, mais vous pouvez créer des UI plus dynamiques, telles que des animations fluides, à l'aide de l'élément canvas.
Les images statiques peuvent être dans n'importe quel format que WebKit peut afficher, y compris BMP, GIF, ICO, JPEG ou PNG. Pour les extensions non compressées, les images doivent être au format PNG.
Pour définir l'icône, utilisez le champ default_icon de browser_action dans le manifest ou appelez la méthode browserAction.setIcon
.
Pour afficher correctement l'icône lorsque la densité de pixels de l'écran (ratio size_in_pixel / size_in_dip
) est différente de 1, l'icône peut être définie comme un ensemble d'images de tailles différentes. L'image à afficher sera sélectionnée dans l'ensemble pour s'adapter au mieux à la taille de pixel de 16 dip. L'ensemble d'icônes peut contenir des spécifications d'icônes de n'importe quelle taille, et Chrome sélectionnera la plus appropriée.
Info-bulle
Pour définir l'info-bulle, utilisez le champ default_title de browser_action dans le manifeste ou appelez la méthode browserAction.setTitle
. Vous pouvez spécifier des chaînes spécifiques aux paramètres régionaux pour le champ default_title. Pour en savoir plus, consultez Internationalisation.
Badge
Les actions du navigateur peuvent éventuellement afficher un badge, c'est-à-dire un petit texte superposé à l'icône. Les badges permettent de mettre à jour facilement l'action du navigateur pour afficher une petite quantité d'informations sur l'état de l'extension.
Comme l'espace est limité sur le badge, il doit comporter quatre caractères ou moins.
Définissez le texte et la couleur du badge à l'aide de browserAction.setBadgeText
et browserAction.setBadgeBackgroundColor
, respectivement.
Fenêtre pop-up
Si une action de navigateur comporte un pop-up, celui-ci s'affiche lorsque l'utilisateur clique sur l'icône de l'extension. Le pop-up peut contenir n'importe quel contenu HTML et sa taille est automatiquement ajustée à son contenu. La taille du pop-up ne peut pas être inférieure à 25 x 25 et ne peut pas être supérieure à 800 x 600.
Pour ajouter un pop-up à votre action de navigateur, créez un fichier HTML contenant le contenu du pop-up. Spécifiez le fichier HTML dans le champ default_popup de browser_action dans le manifest, ou appelez la méthode browserAction.setPopup
.
Conseils
Pour un impact visuel optimal, suivez ces consignes :
- Utilisez les actions du navigateur pour les fonctionnalités qui ont du sens sur la plupart des pages.
- N'utilisez pas les actions du navigateur pour les fonctionnalités qui n'ont de sens que pour quelques pages. Utilisez plutôt page actions.
- Utilisez des icônes grandes et colorées qui exploitent au maximum l'espace de 16 x 16 dip. Les icônes d'action du navigateur doivent sembler un peu plus grandes et plus épaisses que les icônes d'action de la page.
- N'essayez pas d'imiter l'icône monochrome du menu de Google Chrome. Cela ne fonctionne pas bien avec les thèmes. De toute façon, les extensions doivent se démarquer un peu.
- Utilisez la transparence alpha pour ajouter des bords doux à votre icône. Étant donné que de nombreuses personnes utilisent des thèmes, votre icône doit être esthétique sur différentes couleurs d'arrière-plan.
- N'animez pas constamment votre icône. C'est juste ennuyeux.
Exemples
Vous trouverez des exemples simples d'utilisation des actions du navigateur dans le répertoire examples/api/browserAction. Pour obtenir d'autres exemples et de l'aide pour afficher le code source, consultez Exemples.
Types
TabDetails
Propriétés
- tabId
number facultatif
ID de l'onglet dont l'état doit être interrogé. Si aucun onglet n'est spécifié, l'état non spécifique à un onglet est renvoyé.
Méthodes
disable()
chrome.browserAction.disable(
tabId?: number,
callback?: function,
): Promise<void>
Désactive l'action du navigateur pour un onglet.
Paramètres
- tabId
number facultatif
ID de l'onglet pour lequel modifier l'action du navigateur.
- callback
function facultatif
Chrome 67 et versions ultérieuresLe paramètre
callback
se présente comme suit :() => void
Renvoie
-
Promise<void>
Chrome 88 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
enable()
chrome.browserAction.enable(
tabId?: number,
callback?: function,
): Promise<void>
Active l'action du navigateur pour un onglet. Elle est activée par défaut.
Paramètres
- tabId
number facultatif
ID de l'onglet pour lequel modifier l'action du navigateur.
- callback
function facultatif
Chrome 67 et versions ultérieuresLe paramètre
callback
se présente comme suit :() => void
Renvoie
-
Promise<void>
Chrome 88 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
getBadgeBackgroundColor()
chrome.browserAction.getBadgeBackgroundColor(
details: TabDetails,
callback?: function,
): Promise<extensionTypes.ColorArray>
Récupère la couleur d'arrière-plan de l'action du navigateur.
Paramètres
- détails
- callback
function facultatif
Le paramètre
callback
se présente comme suit :(result: ColorArray) => void
- résultat
-
Renvoie
-
Promise<extensionTypes.ColorArray>
Chrome 88 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
getBadgeText()
chrome.browserAction.getBadgeText(
details: TabDetails,
callback?: function,
): Promise<string>
Récupère le texte du badge de l'action du navigateur. Si aucun onglet n'est spécifié, le texte du badge non spécifique à un onglet est renvoyé.
Paramètres
- détails
- callback
function facultatif
Le paramètre
callback
se présente comme suit :(result: string) => void
- résultat
chaîne
-
Renvoie
-
Promise<string>
Chrome 88 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
getPopup()
chrome.browserAction.getPopup(
details: TabDetails,
callback?: function,
): Promise<string>
Obtient le document HTML défini comme pop-up pour cette action de navigateur.
Paramètres
- détails
- callback
function facultatif
Le paramètre
callback
se présente comme suit :(result: string) => void
- résultat
chaîne
-
Renvoie
-
Promise<string>
Chrome 88 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
getTitle()
chrome.browserAction.getTitle(
details: TabDetails,
callback?: function,
): Promise<string>
Obtient le titre de l'action du navigateur.
Paramètres
- détails
- callback
function facultatif
Le paramètre
callback
se présente comme suit :(result: string) => void
- résultat
chaîne
-
Renvoie
-
Promise<string>
Chrome 88 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
setBadgeBackgroundColor()
chrome.browserAction.setBadgeBackgroundColor(
details: object,
callback?: function,
): Promise<void>
Définit la couleur d'arrière-plan du badge.
Paramètres
- détails
objet
- couleur
string | ColorArray
Tableau de quatre nombres entiers compris entre 0 et 255 qui composent la couleur RVBA du badge. Il peut également s'agir d'une chaîne avec une valeur de couleur hexadécimale CSS (
#FF0000
ou#F00
(rouge), par exemple). Affiche les couleurs à leur opacité maximale. - tabId
number facultatif
Limite la modification à l'onglet sélectionné. Elle est automatiquement réinitialisée lorsque l'onglet est fermé.
-
- callback
function facultatif
Chrome 67 et versions ultérieuresLe paramètre
callback
se présente comme suit :() => void
Renvoie
-
Promise<void>
Chrome 88 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
setBadgeText()
chrome.browserAction.setBadgeText(
details: object,
callback?: function,
): Promise<void>
Définit le texte du badge pour l'action du navigateur. Le badge s'affiche au-dessus de l'icône.
Paramètres
- détails
objet
- tabId
number facultatif
Limite la modification à l'onglet sélectionné. Elle est automatiquement réinitialisée lorsque l'onglet est fermé.
- texte
chaîne facultative
Vous pouvez transmettre n'importe quel nombre de caractères, mais seuls quatre environ peuvent tenir dans l'espace. Si une chaîne vide (
''
) est transmise, le texte du badge est effacé. SitabId
est spécifié et quetext
est nul, le texte de l'onglet spécifié est effacé et reprend le texte global du badge par défaut.
-
- callback
function facultatif
Chrome 67 et versions ultérieuresLe paramètre
callback
se présente comme suit :() => void
Renvoie
-
Promise<void>
Chrome 88 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
setIcon()
chrome.browserAction.setIcon(
details: object,
callback?: function,
): Promise<void>
Définit l'icône de l'action du navigateur. L'icône peut être spécifiée sous la forme du chemin d'accès à un fichier image, des données en pixels d'un élément canvas ou d'un dictionnaire de l'un de ces éléments. Vous devez indiquer la propriété path
ou imageData
.
Paramètres
- détails
objet
- imageData
ImageData | objet facultatif
Objet ImageData ou dictionnaire {size -> ImageData} représentant une icône à définir. Si l'icône est spécifiée sous forme de dictionnaire, l'image utilisée est choisie en fonction de la densité de pixels de l'écran. Si le nombre de pixels d'image qui tiennent dans une unité d'espace d'écran est égal à
scale
, une image de taillescale
* n est sélectionnée, où n correspond à la taille de l'icône dans l'UI. Vous devez spécifier au moins une image. Notez que "details.imageData = foo" équivaut à "details.imageData = {'16': foo}". - chemin d'accès
string | object facultatif
Chemin d'accès relatif à l'image ou dictionnaire {taille -> chemin d'accès relatif à l'image} pointant vers une icône à définir. Si l'icône est spécifiée sous forme de dictionnaire, l'image utilisée est choisie en fonction de la densité de pixels de l'écran. Si le nombre de pixels d'image qui tiennent dans une unité d'espace d'écran est égal à
scale
, une image de taillescale
* n est sélectionnée, où n correspond à la taille de l'icône dans l'UI. Vous devez spécifier au moins une image. Notez que "details.path = foo" équivaut à "details.path = {'16': foo}". - tabId
number facultatif
Limite la modification à l'onglet sélectionné. Elle est automatiquement réinitialisée lorsque l'onglet est fermé.
-
- callback
function facultatif
Le paramètre
callback
se présente comme suit :() => void
Renvoie
-
Promise<void>
Chrome 116 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
setPopup()
chrome.browserAction.setPopup(
details: object,
callback?: function,
): Promise<void>
Définit le document HTML à ouvrir sous forme de pop-up lorsque l'utilisateur clique sur l'icône d'action du navigateur.
Paramètres
- détails
objet
- pop-up
chaîne
Chemin d'accès relatif au fichier HTML à afficher dans un pop-up. Si elle est définie sur la chaîne vide (
''
), aucun pop-up ne s'affiche. - tabId
number facultatif
Limite la modification à l'onglet sélectionné. Elle est automatiquement réinitialisée lorsque l'onglet est fermé.
-
- callback
function facultatif
Chrome 67 et versions ultérieuresLe paramètre
callback
se présente comme suit :() => void
Renvoie
-
Promise<void>
Chrome 88 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
setTitle()
chrome.browserAction.setTitle(
details: object,
callback?: function,
): Promise<void>
Définit le titre de l'action du navigateur. Ce titre s'affiche dans l'info-bulle.
Paramètres
- détails
objet
- tabId
number facultatif
Limite la modification à l'onglet sélectionné. Elle est automatiquement réinitialisée lorsque l'onglet est fermé.
- titre
chaîne
Chaîne que l'action du navigateur doit afficher lorsque la souris est pointée dessus.
-
- callback
function facultatif
Chrome 67 et versions ultérieuresLe paramètre
callback
se présente comme suit :() => void
Renvoie
-
Promise<void>
Chrome 88 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
Événements
onClicked
chrome.browserAction.onClicked.addListener(
callback: function,
)
Déclenché lorsqu'un utilisateur clique sur l'icône d'action du navigateur. Ne se déclenche pas si l'action du navigateur comporte un pop-up.