chrome.browserAction

Descrizione

Utilizza le azioni del browser per inserire icone nella barra degli strumenti principale di Google Chrome, a destra della barra degli indirizzi. Oltre all'icona, un'azione del browser può avere una descrizione comando, un badge e un popup.

Disponibilità

≤ MV2

Nella figura seguente, il quadrato multicolore a destra della barra degli indirizzi è l'icona di un'azione del browser. Sotto l'icona è presente un popup.

Se vuoi creare un'icona non sempre attiva, utilizza un'azione di pagina anziché un'azione del browser.

Manifest

Registra l'azione del browser nel manifest dell'estensione come segue:

{
  "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
  },
  ...
}

Puoi fornire un'icona di qualsiasi dimensione da utilizzare in Chrome, che selezionerà quella più simile e la ridimensionerà in base alle dimensioni appropriate per riempire lo spazio di 16 dp. Tuttavia, se non vengono fornite le dimensioni esatte, questo scaling può causare la perdita di dettagli o l'aspetto sfocato dell'icona.

Poiché i dispositivi con fattori di scala meno comuni, come 1,5x o 1,2x, stanno diventando sempre più diffusi, ti consigliamo di fornire più dimensioni per le icone. In questo modo, se le dimensioni di visualizzazione delle icone vengono modificate, non dovrai fare altro per fornire icone diverse.

La vecchia sintassi per la registrazione dell'icona predefinita è ancora supportata:

{
  "name": "My extension",
  ...
  "browser_action": {
    ...
    "default_icon": "images/icon32.png"  // optional
    // equivalent to "default_icon": { "32": "images/icon32.png" }
  },
  ...
}

Parti dell'interfaccia utente

Un'azione del browser può avere un'icona, una descrizione comando, un badge e un popup.

Icona

Le icone delle azioni del browser in Chrome sono larghe e alte 16 dip (pixel indipendenti dal dispositivo). Le icone più grandi vengono ridimensionate per adattarsi, ma per risultati ottimali, utilizza un'icona quadrata di 16 pixel.

Puoi impostare l'icona in due modi: utilizzando un'immagine statica o l'elemento canvas HTML5. L'utilizzo di immagini statiche è più semplice per le applicazioni semplici, ma puoi creare UI più dinamiche, ad esempio animazioni fluide, utilizzando l'elemento canvas.

Le immagini statiche possono essere in qualsiasi formato visualizzato da WebKit, inclusi BMP, GIF, ICO, JPEG o PNG. Per le estensioni scompattate, le immagini devono essere in formato PNG.

Per impostare l'icona, utilizza il campo default_icon di browser_action nel file manifest o chiama il metodo browserAction.setIcon.

Per visualizzare correttamente l'icona quando la densità di pixel dello schermo (rapporto size_in_pixel / size_in_dip) è diversa da 1, l'icona può essere definita come insieme di immagini con dimensioni diverse. L'immagine effettiva da visualizzare verrà selezionata dal set in modo da adattarsi al meglio alle dimensioni dei pixel di 16 dpi. L'insieme di icone può contenere specifiche di icone di qualsiasi dimensione e Chrome ne selezionerà la più appropriata.

Descrizione comando

Per impostare la descrizione comando, utilizza il campo default_title di browser_action nel manifest o chiama il metodo browserAction.setTitle. Puoi specificare stringhe specifiche per le impostazioni internazionali per il campo default_title. Per maggiori dettagli, consulta la sezione Internazionalizzazione.

Badge

Facoltativamente, le azioni del browser possono mostrare un badge, ovvero un breve testo sovrapposto all'icona. I badge semplificano l'aggiornamento dell'azione del browser per visualizzare una piccola quantità di informazioni sullo stato dell'estensione.

Poiché lo spazio del badge è limitato, deve contenere al massimo 4 caratteri.

Imposta il testo e il colore del badge utilizzando rispettivamente browserAction.setBadgeText e browserAction.setBadgeBackgroundColor.

Se un'azione del browser ha un popup, questo viene visualizzato quando l'utente fa clic sull'icona dell'estensione. Il popup può contenere qualsiasi contenuto HTML e viene ridimensionato automaticamente in base ai contenuti. Il popup non può essere più piccolo di 25 x 25 e non può essere più grande di 800 x 600.

Per aggiungere un popup all'azione del browser, crea un file HTML con i contenuti del popup. Specifica il file HTML nel campo default_popup di browser_action nel manifest o chiama il metodo browserAction.setPopup.

Suggerimenti

Per un impatto visivo ottimale, segui queste linee guida:

  • Devi utilizzare le azioni del browser per le funzionalità che hanno senso nella maggior parte delle pagine.
  • Non utilizzare le azioni del browser per funzionalità che hanno senso solo per alcune pagine. Utilizza invece page actions.
  • Devi utilizzare icone grandi e colorate che sfruttano al meglio lo spazio di 16 x 16 pixel. Le icone delle azioni del browser devono sembrare un po' più grandi e più scure rispetto alle icone delle azioni della pagina.
  • Non tentare di imitare l'icona del menu monocromatica di Google Chrome. Questo non funziona bene con i temi e, in ogni caso, le estensioni devono risaltare un po'.
  • Devi utilizzare la trasparenza alpha per aggiungere bordi morbidi all'icona. Poiché molte persone utilizzano temi, l'icona deve avere un aspetto gradevole su una serie di colori di sfondo.
  • Non animare costantemente l'icona. È solo fastidioso.

Esempi

Puoi trovare semplici esempi di utilizzo delle azioni del browser nella directory examples/api/browserAction. Per altri esempi e per assistenza nella visualizzazione del codice sorgente, consulta Samples.

Tipi

TabDetails

Chrome 88 e versioni successive

Proprietà

  • tabId

    number facoltativo

    L'ID della scheda per cui eseguire la query sullo stato. Se non viene specificata alcuna scheda, viene restituito lo stato non specifico per la scheda.

Metodi

disable()

Promessa
chrome.browserAction.disable(
  tabId?: number,
  callback?: function,
)

Disattiva l'azione del browser per una scheda.

Parametri

  • tabId

    number facoltativo

    L'ID della scheda per cui modificare l'azione del browser.

  • callback

    function facoltativa

    Chrome 67 e versioni successive

    Il parametro callback ha il seguente aspetto:

    () => void

Resi

  • Promise<void>

    Chrome 88 e versioni successive

    Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.

enable()

Promessa
chrome.browserAction.enable(
  tabId?: number,
  callback?: function,
)

Consente l'azione del browser per una scheda. Il valore predefinito è attivo.

Parametri

  • tabId

    number facoltativo

    L'ID della scheda per cui modificare l'azione del browser.

  • callback

    function facoltativa

    Chrome 67 e versioni successive

    Il parametro callback ha il seguente aspetto:

    () => void

Resi

  • Promise<void>

    Chrome 88 e versioni successive

    Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.

getBadgeBackgroundColor()

Promessa
chrome.browserAction.getBadgeBackgroundColor(
  details: TabDetails,
  callback?: function,
)

Restituisce il colore di sfondo dell'azione del browser.

Parametri

  • dettagli
  • callback

    function facoltativa

    Il parametro callback ha il seguente aspetto:

    (result: ColorArray) => void

Resi

  • Chrome 88 e versioni successive

    Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.

getBadgeText()

Promessa
chrome.browserAction.getBadgeText(
  details: TabDetails,
  callback?: function,
)

Recupera il testo del badge dell'azione del browser. Se non viene specificata alcuna scheda, viene restituito il testo del badge non specifico per la scheda.

Parametri

  • dettagli
  • callback

    function facoltativa

    Il parametro callback ha il seguente aspetto:

    (result: string) => void

    • risultato

      stringa

Resi

  • Promise<string>

    Chrome 88 e versioni successive

    Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.

getPopup()

Promessa
chrome.browserAction.getPopup(
  details: TabDetails,
  callback?: function,
)

Recupera il documento HTML impostato come popup per questa azione del browser.

Parametri

  • dettagli
  • callback

    function facoltativa

    Il parametro callback ha il seguente aspetto:

    (result: string) => void

    • risultato

      stringa

Resi

  • Promise<string>

    Chrome 88 e versioni successive

    Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.

getTitle()

Promessa
chrome.browserAction.getTitle(
  details: TabDetails,
  callback?: function,
)

Recupera il titolo dell'azione del browser.

Parametri

  • dettagli
  • callback

    function facoltativa

    Il parametro callback ha il seguente aspetto:

    (result: string) => void

    • risultato

      stringa

Resi

  • Promise<string>

    Chrome 88 e versioni successive

    Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.

setBadgeBackgroundColor()

Promessa
chrome.browserAction.setBadgeBackgroundColor(
  details: object,
  callback?: function,
)

Imposta il colore di sfondo del badge.

Parametri

  • dettagli

    oggetto

    • colore

      stringa | ColorArray

      Un array di quattro numeri interi nell'intervallo 0-255 che compongono il colore RGBA del badge. Può anche essere una stringa con un valore di colore esadecimale CSS, ad esempio #FF0000 o #F00 (rosso). Esegue il rendering dei colori con opacità completa.

    • tabId

      number facoltativo

      Limita la modifica al momento in cui è selezionata una determinata scheda. Viene reimpostato automaticamente quando la scheda viene chiusa.

  • callback

    function facoltativa

    Chrome 67 e versioni successive

    Il parametro callback ha il seguente aspetto:

    () => void

Resi

  • Promise<void>

    Chrome 88 e versioni successive

    Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.

setBadgeText()

Promessa
chrome.browserAction.setBadgeText(
  details: object,
  callback?: function,
)

Imposta il testo del badge per l'azione del browser. Il badge viene visualizzato sopra l'icona.

Parametri

  • dettagli

    oggetto

    • tabId

      number facoltativo

      Limita la modifica al momento in cui è selezionata una determinata scheda. Viene reimpostato automaticamente quando la scheda viene chiusa.

    • testo

      stringa facoltativa

      È possibile passare un numero qualsiasi di caratteri, ma nello spazio possono essere inseriti solo circa quattro caratteri. Se viene passata una stringa vuota (''), il testo del badge viene cancellato. Se tabId è specificato e text è null, il testo per la scheda specificata viene cancellato e viene utilizzato per impostazione predefinita il testo del badge globale.

  • callback

    function facoltativa

    Chrome 67 e versioni successive

    Il parametro callback ha il seguente aspetto:

    () => void

Resi

  • Promise<void>

    Chrome 88 e versioni successive

    Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.

setIcon()

Promessa
chrome.browserAction.setIcon(
  details: object,
  callback?: function,
)

Imposta l'icona per l'azione del browser. L'icona può essere specificata come percorso di un file immagine, come dati dei pixel di un elemento canvas o come dizionario di uno di questi. È necessario specificare la proprietà path o imageData.

Parametri

  • dettagli

    oggetto

    • imageData

      ImageData | oggetto facoltativo

      Un oggetto ImageData o un dizionario {size -> ImageData} che rappresenta un'icona da impostare. Se l'icona è specificata come dizionario, l'immagine utilizzata viene scelta in base alla densità dei pixel dello schermo. Se il numero di pixel dell'immagine che si adattano a un'unità di spazio sullo schermo è pari a scale, viene selezionata un'immagine con dimensioni scale * n, dove n è la dimensione dell'icona nell'interfaccia utente. È necessario specificare almeno un'immagine. Tieni presente che "details.imageData = foo" è equivalente a "details.imageData = {'16': foo}"

    • percorso

      stringa | oggetto facoltativo

      Un percorso immagine relativo o un dizionario {size -> relative image path} che rimanda a un'icona da impostare. Se l'icona è specificata come dizionario, l'immagine utilizzata viene scelta in base alla densità dei pixel dello schermo. Se il numero di pixel dell'immagine che si adattano a un'unità di spazio sullo schermo è pari a scale, viene selezionata un'immagine con dimensioni scale * n, dove n è la dimensione dell'icona nell'interfaccia utente. È necessario specificare almeno un'immagine. Tieni presente che "details.path = foo" è equivalente a "details.path = {'16': foo}"

    • tabId

      number facoltativo

      Limita la modifica al momento in cui è selezionata una determinata scheda. Viene reimpostato automaticamente quando la scheda viene chiusa.

  • callback

    function facoltativa

    Il parametro callback ha il seguente aspetto:

    () => void

Resi

  • Promise<void>

    Chrome 116 o versioni successive

    Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.

setPopup()

Promessa
chrome.browserAction.setPopup(
  details: object,
  callback?: function,
)

Imposta il documento HTML da aprire come popup quando l'utente fa clic sull'icona dell'azione del browser.

Parametri

  • dettagli

    oggetto

    • popup

      stringa

      Il percorso relativo al file HTML da mostrare in un popup. Se impostato sulla stringa vuota (''), non viene visualizzato alcun popup.

    • tabId

      number facoltativo

      Limita la modifica al momento in cui è selezionata una determinata scheda. Viene reimpostato automaticamente quando la scheda viene chiusa.

  • callback

    function facoltativa

    Chrome 67 e versioni successive

    Il parametro callback ha il seguente aspetto:

    () => void

Resi

  • Promise<void>

    Chrome 88 e versioni successive

    Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.

setTitle()

Promessa
chrome.browserAction.setTitle(
  details: object,
  callback?: function,
)

Imposta il titolo dell'azione del browser. Questo titolo viene visualizzato nella descrizione comando.

Parametri

  • dettagli

    oggetto

    • tabId

      number facoltativo

      Limita la modifica al momento in cui è selezionata una determinata scheda. Viene reimpostato automaticamente quando la scheda viene chiusa.

    • titolo

      stringa

      La stringa che l'azione del browser deve visualizzare quando si passa il mouse sopra.

  • callback

    function facoltativa

    Chrome 67 e versioni successive

    Il parametro callback ha il seguente aspetto:

    () => void

Resi

  • Promise<void>

    Chrome 88 e versioni successive

    Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.

Eventi

onClicked

chrome.browserAction.onClicked.addListener(
  callback: function,
)

Viene attivato quando viene fatto clic su un'icona di azione del browser. Non viene attivata se l'azione del browser ha un popup.

Parametri

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (tab: tabs.Tab) => void