Opis
Za pomocą działań w przeglądarce możesz umieszczać ikony na głównym pasku narzędzi Google Chrome z prawej strony paska adresu. Oprócz ikony działanie w przeglądarce może mieć wyskakujące okienko, plakietkę i okienko.
Dostępność
Na poniższym rysunku wielokolorowy kwadrat po prawej stronie paska adresu to ikona czynności przeglądarki. Pod ikoną pojawi się wyskakujące okienko.
Jeśli chcesz utworzyć ikonę, która nie jest zawsze aktywna, zamiast działania przeglądarki użyj działania na stronie.
Plik manifestu
Zarejestruj działanie w przeglądarce 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. Chrome wybierze najbliższy i przeskaluje go tak, aby wypełniał obszar 16 pikseli. Jeśli jednak nie podasz dokładnego rozmiaru, skalowanie może spowodować utratę szczegółów lub rozmycie ikony.
Urządzenia z mniej popularnymi współczynnikami skalowania, takimi jak 1,5x lub 1,2x, stają się coraz bardziej powszechne, dlatego zalecamy udostępnianie ikon w różnych rozmiarach. Dzięki temu, jeśli rozmiar wyświetlania ikony ulegnie zmianie, nie musisz robić nic więcej, aby udostępnić inne ikony.
Stara składnia rejestrowania ikony domyślnej 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 w przeglądarce może mieć ikonę, etykietę, plakietkę i wyskakujące okienko.
Ikona
Ikony akcji w Chrome mają 16 dipów (pikseli niezależnych od urządzenia) szerokości i wysokości. Większe ikony są dopasowywane do rozmiaru, ale aby uzyskać najlepsze wyniki, użyj kwadratowej ikony o wymiarach 16 pikseli.
Ikona może być ustawiona na 2 sposoby: za pomocą obrazu statycznego lub elementu HTML5 canvas. W przypadku prostych aplikacji łatwiej jest używać obrazów statycznych, ale za pomocą elementu canvas możesz tworzyć bardziej dynamiczne interfejsy użytkownika, np. płynne animacje.
Obrazy statyczne mogą być w dowolnym formacie obsługiwanym przez WebKit, np. 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 elementach browser_action w pliku manifestu lub wywołaj metodę browserAction.setIcon
.
Aby prawidłowo wyświetlać ikonę, gdy gęstość pikseli ekranu (współczynnik size_in_pixel / size_in_dip
) jest inna niż 1, ikonę można zdefiniować jako zestaw obrazów o różnych rozmiarach. Z danego zbioru zostanie wybrany obraz, który najlepiej pasuje do rozmiaru 16 dipów. Zestaw ikon może zawierać dowolną specyfikację rozmiaru ikony, a Chrome wybierze najbardziej odpowiednią.
Etykietka
Aby ustawić etykietkę, użyj pola default_title w elementach browser_action w pliku manifest lub wywołaj metodę browserAction.setTitle
. W polu default_title możesz podać ciągi znaków specyficzne dla danego języka. Więcej informacji znajdziesz w artykule Internacjonalizacja.
Plakietka
Czynności przeglądarki mogą opcjonalnie wyświetlać plakietę – fragment tekstu nałożony na ikonę. Plakietki ułatwiają aktualizowanie działania w przeglądarce, aby wyświetlać niewielką ilość informacji o stanie rozszerzenia.
Ponieważ na plakietce jest ograniczona ilość miejsca, powinna ona zawierać maksymalnie 4 znaki.
Ustaw tekst i kolor plakietki, używając odpowiednio atrybutów browserAction.setBadgeText
i browserAction.setBadgeBackgroundColor
.
Wyskakujące okienko
Jeśli działanie w przeglądarce zawiera wyskakujące okienko, to pojawi się ono, gdy użytkownik kliknie ikonę rozszerzenia. Pop-up może zawierać dowolne treści HTML. Jego rozmiar jest automatycznie dostosowywany do zawartości. Pop-up nie może być mniejszy niż 25 x 25 ani większy niż 800 x 600.
Aby dodać wyskakujące okienko do działania w przeglądarce, utwórz plik HTML z jego zawartością. Podaj plik HTML w polu default_popup w elementach 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:
- Należy używać działań przeglądarki w przypadku funkcji, które mają sens na większości stron.
- Nie używaj działań w przeglądarce do funkcji, które mają sens tylko w przypadku kilku stron. Zamiast tego użyj kolumny page_actions.
- Należy używać dużych, kolorowych ikon, które w pełni wykorzystują przestrzeń 16 x 16 pikseli. Ikony czynności wykonywanych w przeglądarce powinny być nieco większe i grubsze niż ikony czynności wykonywanych na stronie.
- Nie próbuj naśladować czarno-białej ikony menu Google Chrome. Nie sprawdza się to w przypadku motywów, a i tak rozszerzenia powinny się wyróżniać.
- Należy użyć przezroczystości alfa, aby nadać ikonie miękkie krawędzie. Ponieważ wiele osób korzysta z motywów, ikona powinna dobrze wyglądać na tle w różnych kolorach.
- Nie animuj ikony bez przerwy. To po prostu denerwujące.
Przykłady
Proste przykłady korzystania z działań w przeglądarce znajdziesz w katalogu examples/api/browserAction. Inne przykłady i informacje o wyświetlaniu kodu źródłowego znajdziesz w sekcji Przykłady.
Typy
TabDetails
Właściwości
-
tabId
numer opcjonalny
Identyfikator karty, której stan chcesz sprawdzić. Jeśli nie określisz karty, zwrócony zostanie stan nieokreślony.
Metody
disable()
chrome.browserAction.disable(
tabId?: number,
callback?: function,
)
Wyłącza działanie przeglądarki na karcie.
Parametry
-
tabId
numer opcjonalny
Identyfikator karty, dla której chcesz zmodyfikować działanie przeglądarki.
-
callback
function opcjonalny
Chrome w wersji 67 lub nowszejParametr
callback
ma postać:() => void
Zwroty
-
Obietnica<void>
Chrome 88 lub nowszyObietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.
enable()
chrome.browserAction.enable(
tabId?: number,
callback?: function,
)
Umożliwia działanie przeglądarki na karcie. Domyślnie jest włączona.
Parametry
-
tabId
numer opcjonalny
Identyfikator karty, dla której chcesz zmodyfikować działanie przeglądarki.
-
callback
function opcjonalny
Chrome w wersji 67 lub nowszejParametr
callback
ma postać:() => void
Zwroty
-
Obietnica<void>
Chrome 88 lub nowszyObietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.
getBadgeBackgroundColor()
chrome.browserAction.getBadgeBackgroundColor(
details: TabDetails,
callback?: function,
)
Pobiera kolor tła działania w przeglądarce.
Parametry
-
szczegóły
-
callback
function opcjonalny
Parametr
callback
ma postać:(result: ColorArray) => void
-
wynik
-
Zwroty
-
Obietkwiara<extensionTypes.ColorArray>
Chrome 88 lub nowszyObietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.
getBadgeText()
chrome.browserAction.getBadgeText(
details: TabDetails,
callback?: function,
)
Pobiera tekst plakietki działania w przeglądarce. Jeśli nie określisz karty, zwrócony zostanie tekst plakietki nieprzypisanej do żadnej karty.
Parametry
-
szczegóły
-
callback
function opcjonalny
Parametr
callback
ma postać:(result: string) => void
-
wynik
ciąg znaków
-
Zwroty
-
Promise<string>
Chrome 88 lub nowszyObietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.
getPopup()
chrome.browserAction.getPopup(
details: TabDetails,
callback?: function,
)
Pobiera dokument HTML ustawiony jako wyskakujące okienko dla tego działania przeglądarki.
Parametry
-
szczegóły
-
callback
function opcjonalny
Parametr
callback
ma postać:(result: string) => void
-
wynik
ciąg znaków
-
Zwroty
-
Promise<string>
Chrome 88 lub nowszyObietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.
getTitle()
chrome.browserAction.getTitle(
details: TabDetails,
callback?: function,
)
Pobiera tytuł działania w przeglądarce.
Parametry
-
szczegóły
-
callback
function opcjonalny
Parametr
callback
ma postać:(result: string) => void
-
wynik
ciąg znaków
-
Zwroty
-
Promise<string>
Chrome 88 lub nowszyObietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.
setBadgeBackgroundColor()
chrome.browserAction.setBadgeBackgroundColor(
details: object,
callback?: function,
)
Ustawia kolor tła plakietki.
Parametry
-
szczegóły
obiekt
-
kolor
string | ColorArray
Tablica 4 liczb całkowitych z zakresu 0–255, które tworzą 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
numer opcjonalny
Ogranicza zmianę do momentu wybrania konkretnej karty. Automatycznie resetuje się po zamknięciu karty.
-
-
callback
function opcjonalny
Chrome w wersji 67 lub nowszejParametr
callback
ma postać:() => void
Zwroty
-
Obietnica<void>
Chrome 88 lub nowszyObietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.
setBadgeText()
chrome.browserAction.setBadgeText(
details: object,
callback?: function,
)
Ustawia tekst plakietki dla działania w przeglądarce. Odznaka jest wyświetlana nad ikoną.
Parametry
-
szczegóły
obiekt
-
tabId
numer opcjonalny
Ogranicza zmianę do momentu wybrania konkretnej karty. Automatycznie resetuje się po zamknięciu karty.
-
tekst
string opcjonalny
Możesz podać dowolną liczbę znaków, ale w polu mieści się tylko około 4 znaków. Jeśli podasz pusty ciąg znaków (
''
), tekst plakietki zostanie wyczyszczony. Jeśli określona jest wartośćtabId
, a wartośćtext
jest pusta, tekst na określonej karcie jest usuwany i zastępowany domyślnym tekstem plakietki.
-
-
callback
function opcjonalny
Chrome w wersji 67 lub nowszejParametr
callback
ma postać:() => void
Zwroty
-
Obietnica<void>
Chrome 88 lub nowszyObietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.
setIcon()
chrome.browserAction.setIcon(
details: object,
callback?: function,
)
Ustawia ikonę czynności w przeglądarce. Ikona może być określona jako ścieżka do pliku obrazu, dane pikseli z elementu na płótnie lub słownik jednego z nich. Należy określić właściwość path
lub imageData
.
Parametry
-
szczegóły
obiekt
-
imageData
ImageData | object optional
Obiekt ImageData lub słownik {size -> ImageData} reprezentujący ikonę do ustawienia. Jeśli ikona jest określona jako słownik, obraz jest wybierany w zależności od gęstości pikseli ekranu. Jeśli liczba pikseli obrazu, która mieści się w jednej jednostce przestrzeni ekranu, wynosi
scale
, wybrany zostaje obraz o rozmiarzescale
* n, gdzie n to rozmiar ikony w interfejsie. Musisz podać co najmniej 1 obraz. Pamiętaj, że 'details.imageData = foo' jest równoważne z 'details.imageData = {'16': foo}'. -
ścieżka
string | object opcjonalnie
Ścieżka względna do obrazu lub słownik {size -> relative image path} wskazujący ikonę do ustawienia. Jeśli ikona jest określona jako słownik, obraz jest wybierany w zależności od gęstości pikseli ekranu. Jeśli liczba pikseli obrazu, która mieści się w jednej jednostce przestrzeni ekranu, wynosi
scale
, wybrany zostanie obraz o rozmiarzescale
* n, gdzie n to rozmiar ikony w interfejsie. Musisz podać co najmniej 1 obraz. Pamiętaj, że 'details.path = foo' jest równoważne z 'details.path = {'16': foo}'. -
tabId
numer opcjonalny
Ogranicza zmianę do momentu wybrania konkretnej karty. Automatycznie resetuje się po zamknięciu karty.
-
-
callback
function opcjonalny
Parametr
callback
ma postać:() => void
Zwroty
-
Obietnica<void>
Chrome 116 lub nowszyObietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.
setPopup()
chrome.browserAction.setPopup(
details: object,
callback?: function,
)
Ustawia dokument HTML do otwarcia 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 jest ustawiony na pusty ciąg znaków (
''
), nie wyświetla się wyskakujące okienko. -
tabId
numer opcjonalny
Ogranicza zmianę do momentu wybrania konkretnej karty. Automatycznie resetuje się po zamknięciu karty.
-
-
callback
function opcjonalny
Chrome w wersji 67 lub nowszejParametr
callback
ma postać:() => void
Zwroty
-
Obietnica<void>
Chrome 88 lub nowszyObietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.
setTitle()
chrome.browserAction.setTitle(
details: object,
callback?: function,
)
Ustawia tytuł działania przeglądarki. Ten tytuł będzie widoczny w etykiecie.
Parametry
-
szczegóły
obiekt
-
tabId
numer opcjonalny
Ogranicza zmianę do momentu wybrania konkretnej karty. Automatycznie resetuje się po zamknięciu karty.
-
tytuł
ciąg znaków
Ciąg znaków, który działanie przeglądarki powinno wyświetlać po najechaniu kursorem.
-
-
callback
function opcjonalny
Chrome w wersji 67 lub nowszejParametr
callback
ma postać:() => void
Zwroty
-
Obietnica<void>
Chrome 88 lub nowszyObietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.
Wydarzenia
onClicked
chrome.browserAction.onClicked.addListener(
callback: function,
)
Uruchamiane po kliknięciu ikony czynności wykonywanej w przeglądarce. Nie jest wywoływany, jeśli działanie przeglądarki zawiera wyskakujące okienko.