chrome.browserAction

refresh date: 2026-09-25 robots: noindex

Opis

Za pomocą działań przeglądarki możesz umieszczać ikony na głównym pasku narzędzi Google Chrome, po prawej stronie paska adresu. Oprócz ikony działanie przeglądarki może mieć etykietkę, plakietkę i wyskakujące okienko.

Dostępność

≤ MV2

Na ilustracji poniżej wielokolorowy kwadrat po prawej stronie paska adresu to ikona działania przeglądarki. Pod ikoną pojawi się wyskakujące okienko.

Jeśli chcesz utworzyć ikonę, która nie jest zawsze aktywna, użyj działania na stronie zamiast działania przeglądarki.

Plik manifestu

Zarejestruj działanie przeglądarki w pliku manifestu rozszerzenia w ten sposób:

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

Możesz podać dowolny rozmiar ikony do użycia w Chrome, a Chrome wybierze najbliższy rozmiar i skaluje go do odpowiedniego rozmiaru, aby wypełnić przestrzeń 16 dip. Jeśli jednak dokładny rozmiar nie zostanie podany, skalowanie może spowodować utratę szczegółów lub rozmycie ikony.

Urządzenia z mniej popularnymi współczynnikami skalowania, takimi jak 1,5x czy 1,2x, stają się coraz powszechniejsze, dlatego zalecamy podawanie ikon w różnych rozmiarach. Dzięki temu, jeśli rozmiar wyświetlania ikony kiedykolwiek się zmieni, nie musisz wykonywać żadnych dodatkowych czynności, aby udostępnić inne ikony.

Stara składnia rejestrowania domyślnej ikony jest nadal obsługiwana:

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

Elementy interfejsu

Działanie przeglądarki może mieć ikonę, etykietkę, plakietkę i wyskakujące okienko.

Ikona

Ikony działania przeglądarki w Chrome mają szerokość i wysokość 16 dips (pikseli niezależnych od urządzenia). Większe ikony są dopasowywane, ale aby uzyskać najlepsze wyniki, używaj kwadratowej ikony o rozmiarze 16 dipów.

Ikonę możesz ustawić na 2 sposoby: używając obrazu statycznego lub elementu canvas HTML5. W przypadku prostych aplikacji łatwiej jest używać obrazów statycznych, ale za pomocą elementu canvas możesz tworzyć bardziej dynamiczne interfejsy, np. płynne animacje.

Obrazy statyczne mogą być w dowolnym formacie obsługiwanym przez WebKit, w tym BMP, GIF, ICO, JPEG lub PNG. W przypadku rozszerzeń bez pakietu obrazy muszą być w formacie PNG.

Aby ustawić ikonę, użyj pola default_icon w sekcji browser_action w pliku manifestu lub wywołaj metodę browserAction.setIcon.

Aby prawidłowo wyświetlać ikonę, gdy gęstość pikseli ekranu (stosunek size_in_pixel / size_in_dip) jest inna niż 1, ikonę można zdefiniować jako zestaw obrazów o różnych rozmiarach. Rzeczywisty obraz do wyświetlenia zostanie wybrany z zestawu tak, aby jak najlepiej pasował do rozmiaru piksela 16 dip. Zestaw ikon może zawierać specyfikacje ikon o dowolnym rozmiarze, a Chrome wybierze najbardziej odpowiednią.

Etykietka

Aby ustawić etykietkę, użyj pola default_title w sekcji browser_action w pliku manifestu lub wywołaj metodę browserAction.setTitle. W polu default_title możesz podać ciągi znaków w różnych językach. Więcej informacji znajdziesz w artykule o internacjonalizacji.

Plakietka

Działania przeglądarki mogą opcjonalnie wyświetlać plakietkę, czyli fragment tekstu nałożony na ikonę. Odznaki ułatwiają aktualizowanie działania przeglądarki, aby wyświetlać niewielką ilość informacji o stanie rozszerzenia.

Odznaka ma ograniczoną ilość miejsca, więc powinna zawierać maksymalnie 4 znaki.

Ustaw tekst i kolor plakietki, używając odpowiednio browserAction.setBadgeText i browserAction.setBadgeBackgroundColor.

Jeśli działanie przeglądarki ma wyskakujące okienko, pojawi się ono, gdy użytkownik kliknie ikonę rozszerzenia. Wyskakujące okienko może zawierać dowolne treści HTML i jest automatycznie dopasowywane do ich rozmiaru. Wyskakujące okienko nie może być mniejsze niż 25 x 25 pikseli ani większe niż 800 x 600 pikseli.

Aby dodać wyskakujące okienko do działania przeglądarki, utwórz plik HTML z zawartością wyskakującego okienka. Określ plik HTML w polu default_popup w sekcji browser_action w manifeście lub wywołaj metodę browserAction.setPopup.

Wskazówki

Aby uzyskać najlepszy efekt wizualny, postępuj zgodnie z tymi wskazówkami:

  • Używaj działań przeglądarki w przypadku funkcji, które mają sens na większości stron.
  • Nie używaj działań przeglądarki w przypadku funkcji, które mają sens tylko na kilku stronach. Zamiast tego użyj parametru page actions.
  • Używaj dużych, kolorowych ikon, które w pełni wykorzystują przestrzeń 16 x 16 dp. Ikony działania przeglądarki powinny być nieco większe i bardziej wyraziste niż ikony działania na stronie.
  • Nie próbuj naśladować monochromatycznej ikony menu Google Chrome. Nie sprawdza się to w przypadku motywów, a poza tym rozszerzenia powinny się nieco wyróżniać.
  • Używaj przezroczystości alfa, aby dodać do ikony miękkie krawędzie. Wiele osób używa motywów, więc ikona powinna dobrze wyglądać na różnych kolorach tła.
  • Nie animuj ikony w sposób ciągły. To po prostu irytujące.

Przykłady

Proste przykłady użycia działań przeglądarki znajdziesz w katalogu examples/api/browserAction. Więcej przykładów i pomoc w wyświetlaniu kodu źródłowego znajdziesz w sekcji Przykłady.

Typy

TabDetails

Chrome 88 lub nowsza

Właściwości

  • tabId

    number opcjonalny

    Identyfikator karty, której stan ma zostać sprawdzony. Jeśli nie określono karty, zwracany jest stan niezwiązany z kartą.

Metody

disable()

Obietnica
chrome.browserAction.disable(
  tabId?: number,
  callback?: function,
)
: Promise<void>

Wyłącza działanie przeglądarki na karcie.

Parametry

  • tabId

    number opcjonalny

    Identyfikator karty, dla której chcesz zmodyfikować działanie przeglądarki.

  • callback

    funkcja opcjonalna

    Chrome 67 lub nowsza

    Parametr callback wygląda tak:

    () => void

Zwroty

  • Promise<void>

    Chrome 88 lub nowsza

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

enable()

Obietnica
chrome.browserAction.enable(
  tabId?: number,
  callback?: function,
)
: Promise<void>

Włącza działanie przeglądarki na karcie. Domyślnie jest włączona.

Parametry

  • tabId

    number opcjonalny

    Identyfikator karty, dla której chcesz zmodyfikować działanie przeglądarki.

  • callback

    funkcja opcjonalna

    Chrome 67 lub nowsza

    Parametr callback wygląda tak:

    () => void

Zwroty

  • Promise<void>

    Chrome 88 lub nowsza

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

getBadgeBackgroundColor()

Obietnica
chrome.browserAction.getBadgeBackgroundColor(
  details: TabDetails,
  callback?: function,
)
: Promise<extensionTypes.ColorArray>

Pobiera kolor tła działania przeglądarki.

Parametry

Zwroty

  • Chrome 88 lub nowsza

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

getBadgeText()

Obietnica
chrome.browserAction.getBadgeText(
  details: TabDetails,
  callback?: function,
)
: Promise<string>

Pobiera tekst plakietki działania przeglądarki. Jeśli nie określono karty, zwracany jest tekst plakietki niezwiązany z kartą.

Parametry

  • szczegóły
  • callback

    funkcja opcjonalna

    Parametr callback wygląda tak:

    (result: string) => void

    • wynik

      tekst

Zwroty

  • Promise<string>

    Chrome 88 lub nowsza

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

getPopup()

Obietnica
chrome.browserAction.getPopup(
  details: TabDetails,
  callback?: function,
)
: Promise<string>

Pobiera dokument HTML, który jest ustawiony jako wyskakujące okienko dla tego działania przeglądarki.

Parametry

  • szczegóły
  • callback

    funkcja opcjonalna

    Parametr callback wygląda tak:

    (result: string) => void

    • wynik

      tekst

Zwroty

  • Promise<string>

    Chrome 88 lub nowsza

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

getTitle()

Obietnica
chrome.browserAction.getTitle(
  details: TabDetails,
  callback?: function,
)
: Promise<string>

Pobiera tytuł działania przeglądarki.

Parametry

  • szczegóły
  • callback

    funkcja opcjonalna

    Parametr callback wygląda tak:

    (result: string) => void

    • wynik

      tekst

Zwroty

  • Promise<string>

    Chrome 88 lub nowsza

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

setBadgeBackgroundColor()

Obietnica
chrome.browserAction.setBadgeBackgroundColor(
  details: object,
  callback?: function,
)
: Promise<void>

Ustawia kolor tła plakietki.

Parametry

  • szczegóły

    obiekt

    • kolor

      string | ColorArray

      Tablica 4 liczb całkowitych z zakresu 0–255, które składają się na kolor RGBA plakietki. Może to być też ciąg znaków z wartością koloru szesnastkowego CSS, np. #FF0000 lub #F00 (czerwony). Renderuje kolory z pełną nieprzezroczystością.

    • tabId

      number opcjonalny

      Ogranicza zmianę do sytuacji, w której wybrana jest konkretna karta. Automatycznie resetuje się po zamknięciu karty.

  • callback

    funkcja opcjonalna

    Chrome 67 lub nowsza

    Parametr callback wygląda tak:

    () => void

Zwroty

  • Promise<void>

    Chrome 88 lub nowsza

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

setBadgeText()

Obietnica
chrome.browserAction.setBadgeText(
  details: object,
  callback?: function,
)
: Promise<void>

Ustawia tekst plakietki działania przeglądarki. Plakietka jest wyświetlana nad ikoną.

Parametry

  • szczegóły

    obiekt

    • tabId

      number opcjonalny

      Ogranicza zmianę do sytuacji, w której wybrana jest konkretna karta. Automatycznie resetuje się po zamknięciu karty.

    • tekst

      ciąg znaków opcjonalny

      Możesz przekazać dowolną liczbę znaków, ale w przestrzeni zmieszczą się tylko około 4. Jeśli zostanie przekazany pusty ciąg znaków (''), tekst plakietki zostanie wyczyszczony. Jeśli podasz wartość tabId, a text będzie mieć wartość null, tekst na określonej karcie zostanie wyczyszczony i domyślnie będzie zawierać tekst globalnej plakietki.

  • callback

    funkcja opcjonalna

    Chrome 67 lub nowsza

    Parametr callback wygląda tak:

    () => void

Zwroty

  • Promise<void>

    Chrome 88 lub nowsza

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

setIcon()

Obietnica
chrome.browserAction.setIcon(
  details: object,
  callback?: function,
)
: Promise<void>

Ustawia ikonę działania przeglądarki. Ikona może być określona jako ścieżka do pliku obrazu, dane pikseli z elementu canvas lub słownik zawierający jedną z tych wartości. Należy określić właściwość path lub imageData.

Parametry

  • szczegóły

    obiekt

    • imageData

      ImageData | object opcjonalny

      Obiekt ImageData lub słownik {size -> ImageData} reprezentujący ikonę do ustawienia. Jeśli ikona jest określona jako słownik, użyty obraz jest wybierany w zależności od gęstości pikseli ekranu. Jeśli liczba pikseli obrazu mieszczących się w jednej jednostce przestrzeni ekranu wynosi scale, wybierany jest obraz o rozmiarze scale * n, gdzie n to rozmiar ikony w interfejsie. Musisz określić co najmniej 1 obraz. Pamiętaj, że „details.imageData = foo” jest równoznaczne z „details.imageData = {'16': foo}”.

    • ścieżka

      string | object opcjonalny

      Względna ścieżka do obrazu lub słownik {rozmiar –> względna ścieżka do obrazu} wskazujący ikonę do ustawienia. Jeśli ikona jest określona jako słownik, użyty obraz jest wybierany w zależności od gęstości pikseli ekranu. Jeśli liczba pikseli obrazu mieszczących się w jednej jednostce przestrzeni ekranu wynosi scale, wybierany jest obraz o rozmiarze scale * n, gdzie n to rozmiar ikony w interfejsie. Musisz określić co najmniej 1 obraz. Pamiętaj, że „details.path = foo” jest równoważne „details.path = {'16': foo}”.

    • tabId

      number opcjonalny

      Ogranicza zmianę do sytuacji, w której wybrana jest konkretna karta. Automatycznie resetuje się po zamknięciu karty.

  • callback

    funkcja opcjonalna

    Parametr callback wygląda tak:

    () => void

Zwroty

  • Promise<void>

    Chrome 116 lub nowsza

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

setPopup()

Obietnica
chrome.browserAction.setPopup(
  details: object,
  callback?: function,
)
: Promise<void>

Ustawia dokument HTML, który ma być otwierany jako wyskakujące okienko, gdy użytkownik kliknie ikonę działania przeglądarki.

Parametry

  • szczegóły

    obiekt

    • wyskakujące okienko

      tekst

      Ścieżka względna do pliku HTML, który ma się wyświetlać w wyskakującym okienku. Jeśli zasada ma wartość pustego ciągu znaków (''), nie będzie się wyświetlać żadne wyskakujące okienko.

    • tabId

      number opcjonalny

      Ogranicza zmianę do sytuacji, w której wybrana jest konkretna karta. Automatycznie resetuje się po zamknięciu karty.

  • callback

    funkcja opcjonalna

    Chrome 67 lub nowsza

    Parametr callback wygląda tak:

    () => void

Zwroty

  • Promise<void>

    Chrome 88 lub nowsza

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

setTitle()

Obietnica
chrome.browserAction.setTitle(
  details: object,
  callback?: function,
)
: Promise<void>

Ustawia tytuł działania przeglądarki. Ten tytuł pojawia się w etykiecie.

Parametry

  • szczegóły

    obiekt

    • tabId

      number opcjonalny

      Ogranicza zmianę do sytuacji, w której wybrana jest konkretna karta. Automatycznie resetuje się po zamknięciu karty.

    • tytuł

      tekst

      Ciąg znaków, który ma być wyświetlany w działaniu przeglądarki po najechaniu na niego kursorem myszy.

  • callback

    funkcja opcjonalna

    Chrome 67 lub nowsza

    Parametr callback wygląda tak:

    () => void

Zwroty

  • Promise<void>

    Chrome 88 lub nowsza

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

Wydarzenia

onClicked

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

Wywoływane po kliknięciu ikony działania przeglądarki. Nie jest uruchamiane, jeśli działanie przeglądarki ma wyskakujące okienko.

Parametry

  • callback

    funkcja

    Parametr callback wygląda tak:

    (tab: tabs.Tab) => void