refresh date: 2026-09-25 robots: noindex
Opis
Użyj interfejsu chrome.contextMenus API, aby dodać elementy do menu kontekstowego Google Chrome. Możesz wybrać, do jakich typów obiektów mają się odnosić dodatki do menu kontekstowego, np. do obrazów, hiperlinków i stron.
Uprawnienia
contextMenusWykorzystanie
Elementy menu kontekstowego mogą pojawiać się w dowolnym dokumencie (lub ramce w dokumencie), nawet w tych z adresami URL file:// lub chrome://. Aby określić, w których dokumentach mogą się pojawiać Twoje elementy, podczas wywoływania metody create() lub update() podaj pole documentUrlPatterns.
Możesz utworzyć dowolną liczbę elementów menu kontekstowego, ale jeśli jednocześnie widocznych jest więcej niż jeden element z Twojego rozszerzenia, Google Chrome automatycznie zwija je do jednego menu nadrzędnego.
Plik manifestu
Aby korzystać z interfejsu API, musisz zadeklarować uprawnienie „contextMenus” w pliku manifestu rozszerzenia. Musisz też określić ikonę o rozmiarze 16 × 16 pikseli, która będzie wyświetlana obok elementu menu. Na przykład:
{
"name": "My extension",
...
"permissions": [
"contextMenus"
],
"icons": {
"16": "icon-bitty.png",
"48": "icon-small.png",
"128": "icon-large.png"
},
...
}
Przykłady
Aby wypróbować ten interfejs API, zainstaluj przykład interfejsu contextMenus API z repozytorium chrome-extension-samples.
Typy
ContextType
Różne konteksty, w których może pojawić się menu. Określenie wartości „all” jest równoznaczne z połączeniem wszystkich innych kontekstów z wyjątkiem „launcher”. Kontekst „launcher” jest obsługiwany tylko przez aplikacje i służy do dodawania elementów menu do menu kontekstowego, które pojawia się po kliknięciu ikony aplikacji w programie uruchamiającym, na pasku zadań, w docku itp. Różne platformy mogą nakładać ograniczenia na to, co jest faktycznie obsługiwane w menu kontekstowym programu uruchamiającego.
Typ wyliczeniowy
„all”
„page”
„frame”
"selection"
„link”
„editable”
„image”
„video”
„audio”
„launcher”
„browser_action”
„page_action”
„action”
„tab”
CreateProperties
Właściwości nowego elementu menu kontekstowego.
Właściwości
-
zaznaczono
wartość logiczna opcjonalna
Stan początkowy pola wyboru lub przycisku:
true– zaznaczony,false– niezaznaczony. W danej grupie można wybrać tylko 1 przycisk opcji. -
kontekstów,
[ContextType, ...ContextType[]] opcjonalny
Lista kontekstów, w których będzie widoczna ta pozycja menu. Domyślna wartość to
['page']. -
documentUrlPatterns
string[] opcjonalnie
Ogranicza element tak, aby był stosowany tylko do dokumentów lub ramek, których adres URL pasuje do jednego z podanych wzorców. Szczegółowe informacje o formatach wzorców znajdziesz w artykule Wzorce dopasowania.
-
aktywne
wartość logiczna opcjonalna
Czy ta pozycja menu kontekstowego jest włączona czy wyłączona. Domyślna wartość to
true. -
id
ciąg znaków opcjonalny
Unikalny identyfikator, który ma zostać przypisany do tego elementu. Obowiązkowe w przypadku stron wydarzeń. Nie może być taki sam jak inny identyfikator tego rozszerzenia.
-
parentId
string | number opcjonalnie
Identyfikator elementu menu nadrzędnego. Dzięki temu element staje się elementem podrzędnym wcześniej dodanego elementu.
-
targetUrlPatterns
string[] opcjonalnie
Podobnie jak w przypadku
documentUrlPatterns, filtruje na podstawie atrybutusrctagówimg,audioivideooraz atrybutuhreftagówa. -
tytuł
ciąg znaków opcjonalny
Tekst wyświetlany w elemencie. Jest on wymagany, chyba że atrybut
typema wartośćseparator. Gdy kontekst toselection, użyj w ciągu znaków%s, aby wyświetlić zaznaczony tekst. Jeśli np. wartość tego parametru to „Przetłumacz „%s” na język Pig Latin”, a użytkownik wybierze słowo „cool”, element menu kontekstowego dla tego wyboru będzie brzmiał „Przetłumacz „cool” na język Pig Latin”. -
typ
ItemType opcjonalny
Typ elementu menu. Domyślna wartość to
normal. -
widoczna
wartość logiczna opcjonalna
Określa, czy element jest widoczny w menu.
-
onclick
void optional
Funkcja wywoływana po kliknięciu elementu menu. Nie jest to dostępne w skrypcie service worker. Zamiast tego zarejestruj detektor dla zdarzenia
contextMenus.onClicked.Funkcja
onclickwygląda tak:(info: OnClickData, tab: Tab) => {...}
-
informacje
Informacje o klikniętym elemencie i kontekście, w którym nastąpiło kliknięcie.
-
karta
Szczegóły karty, na której nastąpiło kliknięcie. Ten parametr nie występuje w przypadku aplikacji platformowych.
-
ItemType
Typ elementu menu.
Typ wyliczeniowy
„normal”
„checkbox”
„radio”
„separator”
OnClickData
Informacje wysyłane po kliknięciu elementu menu kontekstowego.
Właściwości
-
zaznaczono
wartość logiczna opcjonalna
Flaga wskazująca stan pola wyboru lub opcji po kliknięciu.
-
do edycji
wartość logiczna
Flaga wskazująca, czy element można edytować (pole tekstowe, obszar tekstowy itp.).
-
frameId
number opcjonalny
Chrome 51 lub nowszaIdentyfikator ramki elementu, w którym kliknięto menu kontekstowe, jeśli znajdował się w ramce.
-
frameUrl
ciąg znaków opcjonalny
Adres URL ramki elementu, w którym kliknięto menu kontekstowe (jeśli element znajdował się w ramce).
-
linkUrl
ciąg znaków opcjonalny
Jeśli element jest linkiem, adres URL, do którego prowadzi.
-
mediaType
ciąg znaków opcjonalny
Wartość „image”, „video” lub „audio”, jeśli menu kontekstowe zostało aktywowane na jednym z tych typów elementów.
-
ciąg znaków | liczba
Identyfikator klikniętego elementu menu.
-
pageUrl
ciąg znaków opcjonalny
Adres URL strony, na której kliknięto element menu. Ta właściwość nie jest ustawiana, jeśli kliknięcie nastąpiło w kontekście, w którym nie ma bieżącej strony, np. w menu kontekstowym programu uruchamiającego.
-
parentMenuItemId
string | number opcjonalnie
Identyfikator nadrzędny klikniętego elementu (jeśli występuje).
-
selectionText
ciąg znaków opcjonalny
Tekst wyboru kontekstu (jeśli występuje).
-
srcUrl
ciąg znaków opcjonalny
Występuje w przypadku elementów z adresem URL „src”.
-
wasChecked
wartość logiczna opcjonalna
Flaga wskazująca stan pola wyboru lub opcji przed kliknięciem.
Właściwości
ACTION_MENU_TOP_LEVEL_LIMIT
Maksymalna liczba elementów rozszerzenia najwyższego poziomu, które można dodać do menu kontekstowego działania rozszerzenia. Wszystkie elementy powyżej tego limitu zostaną zignorowane.
Wartość
6
Metody
create()
chrome.contextMenus.create(
createProperties: CreateProperties,
callback?: function,
): number | string
Tworzy nowy element menu kontekstowego. Jeśli podczas tworzenia wystąpi błąd, może on zostać wykryty dopiero po wywołaniu zwrotnym tworzenia. Szczegóły znajdziesz w runtime.lastError.
Parametry
-
createProperties
-
callback
funkcja opcjonalna
Parametr
callbackwygląda tak:() => void
Zwroty
-
liczba | ciąg znaków
Identyfikator nowo utworzonego elementu.
remove()
chrome.contextMenus.remove(
menuItemId: string | number,
callback?: function,
): Promise<void>
Usuwa element menu kontekstowego.
Parametry
-
ciąg znaków | liczba
Identyfikator elementu menu kontekstowego do usunięcia.
-
callback
funkcja opcjonalna
Parametr
callbackwygląda tak:() => void
Zwroty
-
Promise<void>
Chrome 123 lub nowszaZwraca wartość, gdy menu kontekstowe zostanie usunięte.
Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
removeAll()
chrome.contextMenus.removeAll(
callback?: function,
): Promise<void>
Usuwa wszystkie elementy menu kontekstowego dodane przez to rozszerzenie.
Parametry
-
callback
funkcja opcjonalna
Parametr
callbackwygląda tak:() => void
Zwroty
-
Promise<void>
Chrome 123 lub nowszaZwraca wartość po zakończeniu usuwania.
Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
update()
chrome.contextMenus.update(
id: string | number,
updateProperties: object,
callback?: function,
): Promise<void>
Aktualizuje wcześniej utworzony element menu kontekstowego.
Parametry
-
id
ciąg znaków | liczba
Identyfikator elementu do zaktualizowania.
-
updateProperties
obiekt
Właściwości do zaktualizowania. Akceptuje te same wartości co funkcja
contextMenus.create.-
zaznaczono
wartość logiczna opcjonalna
-
kontekstów,
[ContextType, ...ContextType[]] opcjonalny
-
documentUrlPatterns
string[] opcjonalnie
-
aktywne
wartość logiczna opcjonalna
-
parentId
string | number opcjonalnie
Identyfikator elementu, który ma być elementem nadrzędnym. Uwaga: nie możesz ustawić elementu jako podrzędnego względem jego własnego elementu potomnego.
-
targetUrlPatterns
string[] opcjonalnie
-
tytuł
ciąg znaków opcjonalny
-
typ
ItemType opcjonalny
-
widoczna
wartość logiczna opcjonalna
Chrome 62 lub nowszaOkreśla, czy element jest widoczny w menu.
-
onclick
void optional
Funkcja
onclickwygląda tak:(info: OnClickData, tab: Tab) => {...}
-
informacjeChrome 44 lub nowsza
-
kartaChrome 44 lub nowsza
Szczegóły karty, na której nastąpiło kliknięcie. Ten parametr nie występuje w przypadku aplikacji platformowych.
-
-
-
callback
funkcja opcjonalna
Parametr
callbackwygląda tak:() => void
Zwroty
-
Promise<void>
Chrome 123 lub nowszaRozwiązuje się, gdy menu kontekstowe zostanie zaktualizowane.
Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
Wydarzenia
onClicked
chrome.contextMenus.onClicked.addListener(
callback: function,
)
Uruchamiane po kliknięciu elementu menu kontekstowego.
Parametry
-
callback
funkcja
Parametr
callbackwygląda tak:(info: OnClickData, tab?: tabs.Tab) => void
-
informacje
-
karta
tabs.Tab opcjonalne
-