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ę i 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ę i 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_action w pliku 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_action w pliku 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.setBadgeText
i browserAction.setBadgeBackgroundColor
.
Wyskakujące okienko
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_action w pliku 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
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()
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 nowszaParametr
callback
wygląda tak:() => void
Zwroty
-
Promise<void>
Chrome 88 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
enable()
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 nowszaParametr
callback
wygląda tak:() => void
Zwroty
-
Promise<void>
Chrome 88 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
getBadgeBackgroundColor()
chrome.browserAction.getBadgeBackgroundColor(
details: TabDetails,
callback?: function,
): Promise<extensionTypes.ColorArray>
Pobiera kolor tła działania przeglądarki.
Parametry
- szczegóły
- callback
funkcja opcjonalna
Parametr
callback
wygląda tak:(result: ColorArray) => void
- wynik
-
Zwroty
-
Promise<extensionTypes.ColorArray>
Chrome 88 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
getBadgeText()
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 nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
getPopup()
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 nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
getTitle()
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 nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
setBadgeBackgroundColor()
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 nowszaParametr
callback
wygląda tak:() => void
Zwroty
-
Promise<void>
Chrome 88 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
setBadgeText()
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 nowszaParametr
callback
wygląda tak:() => void
Zwroty
-
Promise<void>
Chrome 88 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
setIcon()
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 rozmiarzescale
* 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 rozmiarzescale
* 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 nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
setPopup()
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 nowszaParametr
callback
wygląda tak:() => void
Zwroty
-
Promise<void>
Chrome 88 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
setTitle()
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 nowszaParametr
callback
wygląda tak:() => void
Zwroty
-
Promise<void>
Chrome 88 lub nowszaObietnice 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.