Beschrijving
Gebruik de chrome.contextMenus API om items toe te voegen aan het contextmenu van Google Chrome. Je kunt kiezen op welke typen objecten je contextmenu-toevoegingen van toepassing zijn, zoals afbeeldingen, hyperlinks en pagina's.
Toestemmingen
contextMenus Om de API te kunnen gebruiken, moet u de machtiging "contextMenus" in het manifest van uw extensie declareren. Daarnaast dient u een pictogram van 16 bij 16 pixels op te geven dat naast uw menu-item wordt weergegeven. Bijvoorbeeld:
{
"name": "My extension",
...
"permissions": [
"contextMenus"
],
"icons": {
"16": "icon-bitty.png",
"48": "icon-small.png",
"128": "icon-large.png"
},
...
}
Concepten en gebruik
Contextmenu-items kunnen in elk document (of frame binnen een document) verschijnen, zelfs in documenten met URL's zoals file:// of chrome://. Om te bepalen in welke documenten uw items kunnen verschijnen, kunt u het veld documentUrlPatterns specificeren wanneer u de methoden create() of update() aanroept.
Je kunt zoveel contextmenu-items aanmaken als je nodig hebt, maar als er meer dan één item van je extensie tegelijk zichtbaar is, vouwt Google Chrome ze automatisch samen tot één overkoepelend menu.
Voorbeelden
Om deze API uit te proberen, installeer je het contextMenus API-voorbeeld uit de chrome-extension-samples repository.
Soorten
ContextType
De verschillende contexten waarin een menu kan verschijnen. Het specificeren van 'alles' komt overeen met de combinatie van alle andere contexten behalve 'launcher'. De context 'launcher' wordt alleen ondersteund door apps en wordt gebruikt om menu-items toe te voegen aan het contextmenu dat verschijnt wanneer u op het app-pictogram in de launcher/taakbalk/dock/etc. klikt. Verschillende platforms kunnen beperkingen opleggen aan wat er daadwerkelijk wordt ondersteund in een launcher-contextmenu.
Enum
"alle" "pagina" "kader" "selectie" "link" "bewerkbaar" "afbeelding" "video" "audio" "lanceerder" "browser_actie" "pagina-actie" "actie"
CreateProperties
Eigenschappen van het nieuwe contextmenu-item.
Eigenschappen
- gecontroleerd
boolean optioneel
De beginstatus van een selectievakje of keuzeknop:
truevoor geselecteerd,falsevoor niet geselecteerd. Er kan slechts één keuzeknop tegelijk in een bepaalde groep geselecteerd zijn. - contexten
[ ContextType , ... ContextType []] optioneel
Lijst met contexten waarin dit menu-item verschijnt. Standaard is dit
['page']. - documentUrlPatterns
string[] optioneel
Hiermee wordt het item beperkt tot documenten of frames waarvan de URL overeenkomt met een van de opgegeven patronen. Zie 'Patronen matchen' voor meer informatie over patroonindelingen.
- ingeschakeld
boolean optioneel
Geeft aan of dit contextmenu-item is in- of uitgeschakeld. Standaard is dit
true. - id
string optioneel
De unieke ID die aan dit item moet worden toegewezen. Verplicht voor evenementpagina's. Mag niet hetzelfde zijn als een andere ID voor deze extensie.
- ouder-ID
tekenreeks | getal optioneel
De ID van een bovenliggend menu-item; hiermee wordt het item een subitem van een eerder toegevoegd item.
- doelURL-patronen
string[] optioneel
Net als
documentUrlPatternsfiltert deze functie op basis van hetsrc-attribuut vanimg,audioenvideotags en hethrefattribuut vanatags. - titel
string optioneel
De tekst die in het item moet worden weergegeven; dit is verplicht , tenzij
typeseparatoris. Wanneer de contextselectionis, gebruik dan%sin de tekenreeks om de geselecteerde tekst weer te geven. Als de waarde van deze parameter bijvoorbeeld "Vertaal '%s' naar Pig Latin" is en de gebruiker het woord "cool" selecteert, is het contextmenu-item voor de selectie "Vertaal 'cool' naar Pig Latin". - type
ItemType optioneel
Het type menu-item. Standaard is dit '
normal. - zichtbaar
boolean optioneel
Of het item zichtbaar is in het menu.
- onclick
void optioneel
Een functie die wordt aangeroepen wanneer op het menu-item wordt geklikt. Deze functie is niet beschikbaar binnen een service worker; in plaats daarvan moet u een listener registreren voor
contextMenus.onClicked.De
onclickfunctie ziet er als volgt uit:(info: OnClickData, tab: Tab) => {...}
- informatie
Informatie over het aangeklikte item en de context waarin de klik plaatsvond.
- tab
De details van het tabblad waarop de klik plaatsvond. Deze parameter is niet beschikbaar voor platform-apps.
ItemType
Het type menu-item.
Enum
"normaal" "selectievakje" "radio" "scheidingsteken"
OnClickData
Informatie die wordt verzonden wanneer op een item in het contextmenu wordt geklikt.
Eigenschappen
- gecontroleerd
boolean optioneel
Een vlag die de status van een selectievakje of keuzerondje aangeeft nadat erop is geklikt.
- bewerkbaar
booleaans
Een vlag die aangeeft of het element bewerkbaar is (tekstinvoer, tekstgebied, enz.).
- frameId
nummer optioneel
Chrome 51+De ID van het frame van het element waarop het contextmenu is geklikt, indien het zich in een frame bevond.
- frameUrl
string optioneel
De URL van het frame van het element waarop het contextmenu is aangeklikt, indien dit zich in een frame bevond.
- linkUrl
string optioneel
Als het element een link is, dan de URL waarnaar deze verwijst.
- mediaType
string optioneel
Een van de waarden 'afbeelding', 'video' of 'audio' als het contextmenu is geactiveerd voor een van deze elementtypen.
tekenreeks | getal
De ID van het menu-item waarop is geklikt.
- paginaUrl
string optioneel
De URL van de pagina waarop het menu-item is aangeklikt. Deze eigenschap wordt niet ingesteld als de klik plaatsvond in een context waarin er geen actieve pagina is, zoals in een contextmenu van een launcher.
- parentMenuItemId
tekenreeks | getal optioneel
De ouder-ID, indien aanwezig, van het aangeklikte item.
- selectieTekst
string optioneel
De tekst voor de contextselectie, indien aanwezig.
- srcUrl
string optioneel
Dit is van toepassing op elementen met een 'src'-URL.
- werd gecontroleerd
boolean optioneel
Een vlag die de status van een selectievakje of keuzerondje aangeeft voordat erop werd geklikt.
Eigenschappen
ACTION_MENU_TOP_LEVEL_LIMIT
Het maximale aantal items op het hoogste niveau dat aan het contextmenu van een extensieactie kan worden toegevoegd. Items boven deze limiet worden genegeerd.
Waarde
6
Methoden
create()
chrome.contextMenus.create(
createProperties: CreateProperties,
callback?: function,
): number | string
Hiermee wordt een nieuw contextmenu-item aangemaakt. Als er tijdens het aanmaken een fout optreedt, wordt deze mogelijk pas gedetecteerd wanneer de aanmaakcallback wordt uitgevoerd; details zijn te vinden in runtime.lastError .
Parameters
- eigenschappen maken
- terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:() => void
Retourneert
getal | tekenreeks
De ID van het nieuw aangemaakte item.
remove()
chrome.contextMenus.remove(
menuItemId: string | number,
): Promise<void>
Verwijdert een item uit het contextmenu.
Parameters
tekenreeks | getal
De ID van het contextmenu-item dat u wilt verwijderen.
Retourneert
Promise<void>
Chrome 123+Dit probleem treedt op wanneer het contextmenu is verwijderd.
removeAll()
chrome.contextMenus.removeAll(): Promise<void>
Verwijdert alle contextmenu-items die door deze extensie zijn toegevoegd.
Retourneert
Promise<void>
Chrome 123+Het probleem wordt opgelost zodra de verwijdering is voltooid.
update()
chrome.contextMenus.update(
id: string | number,
updateProperties: object,
): Promise<void>
Hiermee wordt een eerder aangemaakt contextmenu-item bijgewerkt.
Parameters
- id
tekenreeks | getal
De ID van het item dat moet worden bijgewerkt.
- eigenschappen bijwerken
voorwerp
De eigenschappen die moeten worden bijgewerkt. Accepteert dezelfde waarden als de functie
contextMenus.create.- gecontroleerd
boolean optioneel
- contexten
[ ContextType , ... ContextType []] optioneel
- documentUrlPatterns
string[] optioneel
- ingeschakeld
boolean optioneel
- ouder-ID
tekenreeks | getal optioneel
De ID van het item dat de ouder van dit item moet worden. Let op: u kunt een item niet instellen als kind van zijn eigen afstammeling.
- doelURL-patronen
string[] optioneel
- titel
string optioneel
- type
ItemType optioneel
- zichtbaar
boolean optioneel
Chrome 62+Of het item zichtbaar is in het menu.
- onclick
void optioneel
De
onclickfunctie ziet er als volgt uit:(info: OnClickData, tab: Tab) => {...}
- informatieChrome 44+
- tabChrome 44+
De details van het tabblad waarop de klik plaatsvond. Deze parameter is niet beschikbaar voor platform-apps.
Retourneert
Promise<void>
Chrome 123+Het probleem wordt opgelost wanneer het contextmenu is bijgewerkt.
Evenementen
onClicked
chrome.contextMenus.onClicked.addListener(
callback: function,
)
Wordt geactiveerd wanneer op een item in het contextmenu wordt geklikt.
Parameters
- terugbelverzoek
functie
De
callbackparameter ziet er als volgt uit:(info: OnClickData, tab?: tabs.Tab) => void
- informatie
- tab
tabs.Tab optioneel