chrome.browserAction

Opis

Działania przeglądarki umożliwiają umieszczanie ikon na głównym pasku narzędzi Google Chrome, po prawej stronie paska adresu. Oprócz ikony czynność wykonywana w przeglądarce może mieć etykietkę, plakietkęwyskakujące okienko.

Dostępność

 

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, która będzie używana w Chrome. Przeglądarka 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 udostępnianie 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ęwyskakujące okienko.

Ikona

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

Ikonę możesz ustawić na 2 sposoby: za pomocą obrazu statycznego lub za pomocą 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 rozpakowanych rozszerzeń obrazy muszą być w formacie PNG.

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

Aby ikona była prawidłowo wyświetlana, gdy gęstość pikseli na ekranie (współczynnik size_in_pixel / size_in_dip) jest inna niż 1, można ją 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 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_actionpliku manifestu lub wywołaj metodę browserAction.setTitle. W przypadku pola default_title możesz określić ciągi znaków właściwe dla danego regionu. Więcej informacji znajdziesz w artykule Internacjonalizacja.

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.setBadgeTextbrowserAction.setBadgeBackgroundColor.

Jeśli działanie przeglądarki ma wyskakujące okienko, pojawia 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_actionpliku manifestu 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 czynności wykonywanych w przeglądarce powinny być nieco większe i bardziej wyraziste niż ikony czynności wykonywanych 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 korzysta z 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 chcesz sprawdzić. 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 podasz karty, zwracany jest tekst plakietki niezwiązany z kartą.

Parametry

  • szczegóły
  • callback

    funkcja opcjonalna

    Parametr callback wygląda tak:

    (result: string) => void

    • wynik

      ciąg znaków

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

      ciąg znaków

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

      ciąg znaków

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 szesnastkową wartością koloru CSS, np. #FF0000 lub #F00 (czerwony). Renderuje kolory z pełną przezroczystością.

    • tabId

      number opcjonalny

      Ogranicza zmianę do sytuacji, w której wybrana jest konkretna karta. Resetuje się automatycznie 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. Odznaka jest wyświetlana nad ikoną.

Parametry

  • szczegóły

    obiekt

    • tabId

      number opcjonalny

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

    • tekst

      string opcjonalny

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

  • 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ę czynności wykonywanej w przeglądarce. Ikonę można określić jako ścieżkę 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 na ekranie. 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 opcjonalnie

      Ścieżka względna obrazu lub słownik {rozmiar -> ścieżka względna 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 na ekranie. 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. Resetuje się automatycznie 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

      ciąg znaków

      Ścieżka względna do pliku HTML, który ma się wyświetlać w wyskakującym okienku. Jeśli ustawisz pusty ciąg 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. Resetuje się automatycznie 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ł pojawi się w etykietce.

Parametry

  • szczegóły

    obiekt

    • tabId

      number opcjonalny

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

    • tytuł

      ciąg znaków

      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,
)

Uruchamiane po kliknięciu ikony działania w przeglądarce. Nie jest uruchamiane, jeśli czynność przeglądarki ma wyskakujące okienko.

Parametry

  • callback

    funkcja

    Parametr callback wygląda tak:

    (tab: tabs.Tab) => void