refresh date: 2026-09-25 robots: noindex
Beschrijving
Gebruik browseracties om iconen in de hoofdwerkbalk van Google Chrome te plaatsen, rechts van de adresbalk. Naast het icoon kan een browseractie een tooltip, een badge en een pop-up hebben.
Beschikbaarheid
In de volgende afbeelding is het veelkleurige vierkant rechts van de adresbalk het icoon voor een browseractie. Onder het icoon staat een pop-up.

Als je een icoon wilt maken dat niet altijd actief is, gebruik je een pagina-actie in plaats van een browseractie.
Manifest
Registreer je browseractie als volgt in het extensiemanifest:
{
"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
},
...
}
Je kunt een icoon van elk formaat opgeven voor gebruik in Chrome. Chrome selecteert het icoon dat het dichtst bij het juiste formaat ligt en schaalt het naar het juiste formaat om de ruimte van 16 dip te vullen. Als het exacte formaat niet wordt verstrekt, kan deze schaling ertoe leiden dat het icoon details verliest of er wazig uitziet.
Omdat apparaten met minder gebruikelijke schaalfactoren zoals 1,5x of 1,2x steeds vaker voorkomen, raden we je aan meerdere formaten voor je iconen te bieden. Dit zorgt er ook voor dat als de weergavegrootte van het icoon ooit wordt gewijzigd, je geen extra werk hoeft te doen om verschillende iconen te leveren.
De oude syntaxis voor de registratie van het standaardicoon wordt nog steeds ondersteund:
{
"name": "My extension",
...
"browser_action": {
...
"default_icon": "images/icon32.png" // optional
// equivalent to "default_icon": { "32": "images/icon32.png" }
},
...
}
Onderdelen van de UI
Een browseractie kan een icoon, een tooltip, een badge en een pop-up hebben.
Icoon
De iconen voor browseracties in Chrome zijn 16 dips (apparaatonafhankelijke pixels) breed en hoog. Grotere iconen worden aangepast, maar voor de beste resultaten gebruik je een vierkant icoon van 16 dip.
Je kunt het icoon op 2 manieren instellen: met een statische afbeelding of met het HTML5-canvaselement. Het gebruik van statische afbeeldingen is makkelijker voor eenvoudige apps, maar je kunt dynamischere UI's maken, zoals vloeiende animaties, met het canvaselement.
Statische afbeeldingen kunnen elke indeling hebben die WebKit kan weergeven, waaronder bmp, gif, ico, jpeg of png. Voor uitgepakte extensies moeten afbeeldingen de png-indeling hebben.
Als je het icoon wilt instellen, gebruik je het veld default_icon van browser_action in het manifest of roep je de methode browserAction.setIcon aan.
Als je het icoon correct wilt weergeven als de pixeldichtheid van het scherm (verhouding size_in_pixel / size_in_dip) niet 1 is, kun je het icoon definiëren als een set afbeeldingen met verschillende formaten. De werkelijke afbeelding die wordt getoond, wordt geselecteerd uit de set die het beste past bij de pixelgrootte van 16 dip. De iconenset kan iconen van elke grootte bevatten. Chrome selecteert het meest geschikte icoon.
Tooltip
Als je de tooltip wilt instellen, gebruik je het veld default_title van browser_action in het manifest of roep je de methode browserAction.setTitle aan. Je kunt landspecifieke tekenreeksen opgeven voor het veld default_title. Ga naar Internationalisering voor meer informatie.
Badge
Browseracties kunnen optioneel een badge tonen: een stukje tekst dat over het icoon is geplaatst. Met badges kun je de browseractie makkelijk updaten om een kleine hoeveelheid informatie over de status van de extensie te tonen.
Omdat de badge beperkte ruimte heeft, mag deze maximaal 4 tekens bevatten.
Stel de tekst en kleur van de badge in met respectievelijk browserAction.setBadgeText en browserAction.setBadgeBackgroundColor.
Pop-up
Als een browseractie een pop-up heeft, verschijnt de pop-up wanneer de gebruiker op het icoon van de extensie klikt. De pop-up kan elke gewenste HTML-content bevatten en wordt automatisch aangepast aan de content. De pop-up mag niet kleiner zijn dan 25 x 25 en niet groter dan 800 x 600.
Als je een pop-up aan je browseractie wilt toevoegen, maak je een HTML-bestand met de content van de pop-up. Voer het HTML-bestand in het veld default_popup van browser_action in het manifest in of roep de methode browserAction.setPopup aan.
Tips
Volg deze richtlijnen voor de beste visuele impact:
- Wel doen: Gebruik browseracties voor functies die op de meeste pagina's zinvol zijn.
- Gebruik geen browseracties voor functies die maar voor een paar pagina's zinvol zijn. Gebruik in plaats daarvan pagina-acties.
- Wel doen: Gebruik grote, kleurrijke iconen die de ruimte van 16 x 16 dip optimaal benutten. Iconen voor browseracties moeten iets groter en zwaarder lijken dan iconen voor pagina-acties.
- Probeer niet het monochrome menu-icoon van Google Chrome na te bootsen. Dat werkt niet goed met thema's en extensies moeten toch een beetje opvallen.
- Gebruik alfa-transparantie om zachte randen aan je icoon toe te voegen. Omdat veel mensen thema's gebruiken, moet je icoon er goed uitzien op verschillende achtergrondkleuren.
- Animeer je icoon niet voortdurend. Dat is gewoon irritant.
Voorbeelden
In de directory examples/api/browserAction vind je eenvoudige voorbeelden van het gebruik van browseracties. Ga naar Samples voor andere voorbeelden en hulp bij het bekijken van de broncode.
Typen
TabDetails
Eigenschappen
-
tabId
number optioneel
De ID van het tabblad waarvoor je de status wilt opvragen. Als er geen tabblad is opgegeven, wordt de niet-tabbladspecifieke status geretourneerd.
Methoden
disable()
chrome.browserAction.disable(
tabId?: number,
callback?: function,
): Promise<void>
Zet de browseractie voor een tabblad uit.
Parameters
-
tabId
number optioneel
De ID van het tabblad waarvoor de browseractie moet worden aangepast.
-
callback
functie optioneel
Chrome 67+De parameter
callbackziet er zo uit:() => void
Retourzendingen
-
Promise<void>
Chrome 88+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
enable()
chrome.browserAction.enable(
tabId?: number,
callback?: function,
): Promise<void>
Hiermee wordt de browseractie voor een tabblad aangezet. Staat standaard aan.
Parameters
-
tabId
number optioneel
De ID van het tabblad waarvoor de browseractie moet worden aangepast.
-
callback
functie optioneel
Chrome 67+De parameter
callbackziet er zo uit:() => void
Retourzendingen
-
Promise<void>
Chrome 88+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
getBadgeBackgroundColor()
chrome.browserAction.getBadgeBackgroundColor(
details: TabDetails,
callback?: function,
): Promise<extensionTypes.ColorArray>
Haalt de achtergrondkleur van de browseractie op.
Parameters
-
details
-
callback
functie optioneel
De parameter
callbackziet er zo uit:(result: ColorArray) => void
-
resultaat
-
Retourzendingen
-
Promise<extensionTypes.ColorArray>
Chrome 88+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
getBadgeText()
chrome.browserAction.getBadgeText(
details: TabDetails,
callback?: function,
): Promise<string>
Haalt de badgetekst van de browseractie op. Als er geen tabblad is opgegeven, wordt de niet-tabbladspecifieke badgetekst geretourneerd.
Parameters
-
details
-
callback
functie optioneel
De parameter
callbackziet er zo uit:(result: string) => void
-
resultaat
tekenreeks
-
Retourzendingen
-
Promise<string>
Chrome 88+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
getPopup()
chrome.browserAction.getPopup(
details: TabDetails,
callback?: function,
): Promise<string>
Haalt het HTML-document op dat is ingesteld als de pop-up voor deze browseractie.
Parameters
-
details
-
callback
functie optioneel
De parameter
callbackziet er zo uit:(result: string) => void
-
resultaat
tekenreeks
-
Retourzendingen
-
Promise<string>
Chrome 88+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
getTitle()
chrome.browserAction.getTitle(
details: TabDetails,
callback?: function,
): Promise<string>
Haalt de titel van de browseractie op.
Parameters
-
details
-
callback
functie optioneel
De parameter
callbackziet er zo uit:(result: string) => void
-
resultaat
tekenreeks
-
Retourzendingen
-
Promise<string>
Chrome 88+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
setBadgeBackgroundColor()
chrome.browserAction.setBadgeBackgroundColor(
details: object,
callback?: function,
): Promise<void>
Hiermee stelt u de achtergrondkleur van de badge in.
Parameters
-
details
object
-
kleur
string | ColorArray
Een matrix van 4 gehele getallen in het bereik 0-255 die de RGBA-kleur van de badge vormen. Kan ook een tekenreeks zijn met een hexadecimale CSS-kleurwaarde, bijvoorbeeld
#FF0000of#F00(rood). Geeft kleuren weer met volledige dekking. -
tabId
number optioneel
Beperkt de wijziging tot wanneer een bepaald tabblad is geselecteerd. Wordt automatisch gereset als het tabblad wordt gesloten.
-
-
callback
functie optioneel
Chrome 67+De parameter
callbackziet er zo uit:() => void
Retourzendingen
-
Promise<void>
Chrome 88+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
setBadgeText()
chrome.browserAction.setBadgeText(
details: object,
callback?: function,
): Promise<void>
Stelt de badgetekst voor de browseractie in. De badge wordt boven het icoon getoond.
Parameters
-
details
object
-
tabId
number optioneel
Beperkt de wijziging tot wanneer een bepaald tabblad is geselecteerd. Wordt automatisch gereset als het tabblad wordt gesloten.
-
tekst
tekenreeks optioneel
U kunt een onbeperkt aantal tekens doorgeven, maar er passen er maar ongeveer 4 in de ruimte. Als er een lege tekenreeks (
'') wordt doorgegeven, wordt de badgetekst gewist. AlstabIdis ingevoerd entextis null, wordt de tekst voor het ingevoerde tabblad gewist en wordt de algemene badgetekst gebruikt.
-
-
callback
functie optioneel
Chrome 67+De parameter
callbackziet er zo uit:() => void
Retourzendingen
-
Promise<void>
Chrome 88+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
setIcon()
chrome.browserAction.setIcon(
details: object,
callback?: function,
): Promise<void>
Stelt het icoon voor de browseractie in. Het icoon kan worden gespecificeerd als het pad naar een afbeeldingsbestand, als de pixelgegevens van een canvaselement of als een woordenboek van een van deze. De property path of imageData moet worden opgegeven.
Parameters
-
details
object
-
imageData
ImageData | object optioneel
Een ImageData-object of een woordenboek {size -> ImageData} dat een icoon vertegenwoordigt dat moet worden ingesteld. Als het icoon is gespecificeerd als een woordenboek, wordt de gebruikte afbeelding gekozen op basis van de pixeldichtheid van het scherm. Als het aantal afbeeldingspixels dat in één schermruimte-eenheid past gelijk is aan
scale, wordt een afbeelding met de groottescale* n geselecteerd, waarbij n de grootte van het icoon in de UI is. Er moet minstens één afbeelding worden ingevoerd. Let op: 'details.imageData = foo' is gelijk aan 'details.imageData = {'16': foo}' -
pad
string | object optioneel
Een relatief afbeeldingspad of een woordenboek {size -> relative image path} dat verwijst naar een icoon dat moet worden ingesteld. Als het icoon is gespecificeerd als een woordenboek, wordt de gebruikte afbeelding gekozen op basis van de pixeldichtheid van het scherm. Als het aantal afbeeldingspixels dat in één schermruimte-eenheid past gelijk is aan
scale, wordt een afbeelding met de groottescale* n geselecteerd, waarbij n de grootte van het icoon in de UI is. Er moet minstens één afbeelding worden ingevoerd. 'details.path = foo' is gelijk aan 'details.path = {'16': foo}' -
tabId
number optioneel
Beperkt de wijziging tot wanneer een bepaald tabblad is geselecteerd. Wordt automatisch gereset als het tabblad wordt gesloten.
-
-
callback
functie optioneel
De parameter
callbackziet er zo uit:() => void
Retourzendingen
-
Promise<void>
Chrome 116 of hogerPromises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
setPopup()
chrome.browserAction.setPopup(
details: object,
callback?: function,
): Promise<void>
Stelt het html-document in dat als pop-up moet worden geopend wanneer de gebruiker op het icoon voor de browseractie klikt.
Parameters
-
details
object
-
pop-up
tekenreeks
Het relatieve pad naar het HTML-bestand dat in een pop-up moet worden getoond. Als je dit beleid instelt op de lege tekenreeks (
''), wordt er geen pop-up getoond. -
tabId
number optioneel
Beperkt de wijziging tot wanneer een bepaald tabblad is geselecteerd. Wordt automatisch gereset als het tabblad wordt gesloten.
-
-
callback
functie optioneel
Chrome 67+De parameter
callbackziet er zo uit:() => void
Retourzendingen
-
Promise<void>
Chrome 88+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
setTitle()
chrome.browserAction.setTitle(
details: object,
callback?: function,
): Promise<void>
Hiermee wordt de titel van de browseractie ingesteld. Deze titel verschijnt in de tooltip.
Parameters
-
details
object
-
tabId
number optioneel
Beperkt de wijziging tot wanneer een bepaald tabblad is geselecteerd. Wordt automatisch gereset als het tabblad wordt gesloten.
-
titel
tekenreeks
De tekenreeks die de browseractie moet tonen als de muisaanwijzer erop wordt geplaatst.
-
-
callback
functie optioneel
Chrome 67+De parameter
callbackziet er zo uit:() => void
Retourzendingen
-
Promise<void>
Chrome 88+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
Evenementen
onClicked
chrome.browserAction.onClicked.addListener(
callback: function,
)
Wordt geactiveerd als er op een icoon voor een browseractie wordt geklikt. Wordt niet geactiveerd als de browseractie een pop-up heeft.