Opis
Użyj interfejsu chrome.contextMenus API, aby dodać elementy do menu kontekstowego Google Chrome. Możesz wybrać typy obiektów, do których mają być stosowane dodatki do menu kontekstowego, np. obrazy, hiperlinki i strony.
Uprawnienia
contextMenusAby korzystać z interfejsu API, musisz zadeklarować uprawnienie "contextMenus" w pliku manifestu rozszerzenia. Musisz też podać ikonę o wymiarach 16 x 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"
  },
  ...
}
Pojęcia i zastosowanie
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 metod 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.
Przykłady
Aby wypróbować ten interfejs API, zainstaluj przykład interfejsu API contextMenus z repozytorium chrome-extension-samples.
Typy
ContextType
Różne konteksty, w których może pojawić się menu. Określenie „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” 
 
CreateProperties
Właściwości nowego elementu menu kontekstowego.
Właściwości
- 
    zaznaczonowartość logiczna opcjonalna Stan początkowy pola wyboru lub przycisku: true– zaznaczony,false– odznaczony. W danej grupie można wybrać tylko jedną opcję.
- 
    konteksty,[ContextType, ...ContextType[]] opcjonalnie Lista kontekstów, w których będzie wyświetlana ta pozycja menu. Domyślna wartość to ['page'].
- 
    documentUrlPatternsstring[] opcjonalne 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. 
- 
    włączonewartość logiczna opcjonalna Czy ta pozycja menu kontekstowego jest włączona czy wyłączona. Domyślna wartość to true.
- 
    idstring 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. 
- 
    parentIdstring | number opcjonalnie Identyfikator elementu menu nadrzędnego. Dzięki temu element staje się elementem podrzędnym wcześniej dodanego elementu. 
- 
    targetUrlPatternsstring[] opcjonalne Podobnie jak w przypadku documentUrlPatterns, filtry oparte na atrybuciesrctagówimg,audioivideooraz atrybuciehreftagówa.
- 
    tytułstring opcjonalny Tekst wyświetlany w elemencie. Jest on wymagany, chyba że typema wartośćseparator. Gdy kontekst toselection, użyj w ciągu znaków symbolu%s, aby wyświetlić zaznaczony tekst. Jeśli na przykład 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”.
- 
    typItemType opcjonalny Typ elementu menu. Domyślna wartość to normal.
- 
    widocznawartość logiczna opcjonalna Określa, czy element jest widoczny w menu. 
- 
    onclickvoid optional Funkcja, która jest wywoływana po kliknięciu elementu menu. Nie jest to dostępne w skrypcie service worker. Zamiast tego zarejestruj odbiornik dla zdarzenia contextMenus.onClicked.Funkcja onclickwygląda tak:(info: OnClickData, tab: Tab) => {...} - 
    informacjeInformacje o klikniętym elemencie i kontekście, w którym nastąpiło kliknięcie. 
- 
    tabulatorSzczegół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
- 
    zaznaczonowartość logiczna opcjonalna Flaga wskazująca stan pola wyboru lub opcji po kliknięciu. 
- 
    edytowalny,Wartość logiczna Flaga wskazująca, czy element można edytować (pole tekstowe, obszar tekstowy itp.). 
- 
    frameIdnumber opcjonalny Chrome 51 lub nowszaIdentyfikator ramki elementu, w którym kliknięto menu kontekstowe, jeśli znajdował się w ramce. 
- 
    frameUrlstring opcjonalny Adres URL ramki elementu, w którym kliknięto menu kontekstowe (jeśli element znajdował się w ramce). 
- 
    linkUrlstring opcjonalny Jeśli element jest linkiem, jest to adres URL, do którego prowadzi. 
- 
    mediaTypestring 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. 
- 
    pageUrlstring 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. 
- 
    parentMenuItemIdstring | number opcjonalnie Identyfikator nadrzędny klikniętego elementu (jeśli występuje). 
- 
    selectionTextstring opcjonalny Tekst wybranego kontekstu (jeśli występuje). 
- 
    srcUrlstring opcjonalny Będzie obecny w przypadku elementów z adresem URL „src”. 
- 
    wasCheckedwartość 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 związanego z rozszerzeniem. Wszystkie elementy powyżej tego limitu będą ignorowane.
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 zwrotnej funkcji tworzenia. Szczegóły znajdziesz w runtime.lastError.
Parametry
- 
    createProperties
- 
    callbackfunkcja opcjonalna Parametr callbackwygląda tak:() => void 
Zwroty
- 
            liczba | ciąg tekstowy Identyfikator nowo utworzonego elementu. 
remove()
chrome.contextMenus.remove(
menuItemId: string | number,
): Promise<void>
Usuwa element menu kontekstowego.
Parametry
- 
    ciąg znaków | liczba Identyfikator elementu menu kontekstowego do usunięcia. 
Zwroty
- 
            Promise<void> Chrome 123 lub nowsza
removeAll()
chrome.contextMenus.removeAll(): Promise<void>
Usuwa wszystkie elementy menu kontekstowego dodane przez to rozszerzenie.
Zwroty
- 
            Promise<void> Chrome 123 lub nowsza
update()
chrome.contextMenus.update(
id: string | number,
updateProperties: object,
): Promise<void>
Aktualizuje utworzony wcześniej element menu kontekstowego.
Parametry
- 
    idciąg znaków | liczba Identyfikator elementu do zaktualizowania. 
- 
    updatePropertiesobiekt Właściwości do zaktualizowania. Akceptuje te same wartości co funkcja contextMenus.create.- 
    zaznaczonowartość logiczna opcjonalna 
- 
    konteksty,[ContextType, ...ContextType[]] opcjonalnie 
- 
    documentUrlPatternsstring[] opcjonalne 
- 
    włączonewartość logiczna opcjonalna 
- 
    parentIdstring | number opcjonalnie Identyfikator elementu, który ma stać się elementem nadrzędnym tego elementu. Uwaga: nie możesz ustawić elementu jako podrzędnego względem jego własnego elementu potomnego. 
- 
    targetUrlPatternsstring[] opcjonalne 
- 
    tytułstring opcjonalny 
- 
    typItemType opcjonalny 
- 
    widocznawartość logiczna opcjonalna Chrome 62 lub nowszaOkreśla, czy element jest widoczny w menu. 
- 
    onclickvoid optional Funkcja onclickwygląda tak:(info: OnClickData, tab: Tab) => {...} - 
    informacjeChrome 44 lub nowszy
- 
    tabulatorChrome 44 lub nowszySzczegóły karty, na której nastąpiło kliknięcie. Ten parametr nie występuje w przypadku aplikacji platformowych. 
 
- 
    
 
- 
    
Zwroty
- 
            Promise<void> Chrome 123 lub nowsza
Wydarzenia
onClicked
chrome.contextMenus.onClicked.addListener(
callback: function,
)
Uruchamiane po kliknięciu elementu menu kontekstowego.
Parametry
- 
    callbackfunkcja Parametr callbackwygląda tak:(info: OnClickData, tab?: tabs.Tab) => void - 
    informacje
- 
    tabulatortabs.Tab opcjonalne 
 
-