Beschrijving
Gebruik de chrome.contextMenus
API om items toe te voegen aan het contextmenu van Google Chrome. U kunt kiezen op welke typen objecten uw contextmenu-toevoegingen van toepassing zijn, zoals afbeeldingen, hyperlinks en pagina's.
Machtigingen
contextMenus
Gebruik
Contextmenu-items kunnen in elk document (of frame binnen een document) verschijnen, zelfs in documenten met een file://- of chrome://-URL. Om te bepalen in welke documenten uw items kunnen verschijnen, specificeert u het veld documentUrlPatterns wanneer u de methode create()
of update()
aanroept.
U kunt zoveel contextmenu-items maken als u nodig hebt, maar als er meer dan één item van uw extensie tegelijk zichtbaar is, vouwt Google Chrome deze automatisch samen tot één bovenliggend menu.
Manifest
U moet de machtiging "contextMenus" in het manifest van uw extensie declareren om de API te gebruiken. U moet ook een pictogram van 16x16 pixels opgeven voor weergave naast uw menu-item. Bijvoorbeeld:
{
"name": "My extension",
...
"permissions": [
"contextMenus"
],
"icons": {
"16": "icon-bitty.png",
"48": "icon-small.png",
"128": "icon-large.png"
},
...
}
Voorbeelden
Om deze API uit te proberen, installeert u het contextMenus API-voorbeeld uit de chrome-extension-samples repository.
Typen
ContextType
De verschillende contexten waarin een menu kan verschijnen. Het specificeren van 'alle' is gelijk aan de combinatie van alle andere contexten, behalve 'launcher'. De 'launcher'-context 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/enz. klikt. Verschillende platforms kunnen beperkingen opleggen aan wat daadwerkelijk wordt ondersteund in een contextmenu van een launcher.
Enum
"alle" "pagina" "kader" "selectie" "link" "bewerkbaar" "afbeelding" "video" "audio" "lanceerinrichting" "browser_actie" "pagina_actie" "actie"
CreateProperties
Eigenschappen van het nieuwe contextmenu-item.
Eigenschappen
- gecontroleerd
boolean optioneel
De begintoestand van een selectievakje of keuzerondje:
true
voor geselecteerd,false
voor niet-geselecteerd. Er kan slechts één keuzerondje tegelijk in een bepaalde groep worden geselecteerd. - contexten
[ ContextType , ... ContextType []] optioneel
Lijst met contexten waarin dit menu-item zal verschijnen. Standaard is dit
['page']
. - documentUrlPatronen
string[] optioneel
Beperkt het item tot alleen documenten of frames waarvan de URL overeenkomt met een van de opgegeven patronen. Zie Patronen matchen voor meer informatie over patroonformaten .
- ingeschakeld
boolean optioneel
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 gebeurtenispagina's. Kan niet hetzelfde zijn als een andere ID voor deze extensie.
- ouder-ID
string | nummer optioneel
De ID van een bovenliggend menu-item. Hiermee wordt het item een 'kind' van een eerder toegevoegd item.
- targetUrlPatterns
string[] optioneel
Vergelijkbaar met
documentUrlPatterns
zijn filters gebaseerd op hetsrc
-kenmerk vanimg
,audio
envideo
-tags en hethref
-kenmerk vana
-tags. - titel
string optioneel
De tekst die in het item moet worden weergegeven; dit is vereist , tenzij
type
separator
is. Wanneer de contextselection
is, gebruikt u%s
in de tekenreeks om de geselecteerde tekst weer te geven. Als de waarde van deze parameter bijvoorbeeld "'%s' vertalen naar Pig Latin" is en de gebruiker het woord "cool" selecteert, is het contextmenu-item voor de selectie "''cool' vertalen 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
leeg 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
onclick
-functie ziet er als volgt uit:(info: OnClickData, tab: Tab) => {...}
- informatie
Informatie over het item waarop is geklikt en de context waarin is geklikt.
- tabblad
De details van het tabblad waarop de klik plaatsvond. Deze parameter is niet aanwezig voor platform-apps.
ItemType
Het type menu-item.
Enum
"normaal" "selectievakje" "radio" "scheidingsteken"
OnClickData
Informatie die wordt verzonden wanneer er op een contextmenu-item wordt geklikt.
Eigenschappen
- gecontroleerd
boolean optioneel
Een vlag die de status van een selectievakje of keuzerondje aangeeft nadat erop is geklikt.
- bewerkbaar
Booleaanse
Een vlag die aangeeft of het element bewerkbaar is (tekstinvoer, tekstvak, enz.).
- frame-ID
nummer optioneel
Chroom 51+De ID van het frame van het element waar op het contextmenu is geklikt, als dit zich in een frame bevond.
- frameUrl
string optioneel
De URL van het frame van het element waar op het contextmenu is geklikt, als dit zich in een frame bevond.
- linkUrl
string optioneel
Als het element een link is, de URL waarnaar het verwijst.
- mediaType
string optioneel
Één van 'afbeelding', 'video' of 'audio' als het contextmenu is geactiveerd op een van deze typen elementen.
tekenreeks | getal
De ID van het menu-item waarop is geklikt.
- paginaUrl
string optioneel
De URL van de pagina waarop op het menu-item is geklikt. Deze eigenschap is niet ingesteld als de klik plaatsvond in een context waarin geen actieve pagina is, zoals in een contextmenu van een launcher.
- ouderMenuItemId
string | nummer optioneel
De bovenliggende ID, indien van toepassing, voor het aangeklikte item.
- selectieTekst
string optioneel
De tekst voor de contextselectie, indien van toepassing.
- bron-Url
string optioneel
Is aanwezig voor elementen met een 'src'-URL.
- was gecontroleerd
boolean optioneel
Een vlag die de status van een selectievakje of keuzerondje aangeeft voordat erop is geklikt.
Eigenschappen
ACTION_MENU_TOP_LEVEL_LIMIT
Het maximale aantal extensie-items op het hoogste niveau dat kan worden toegevoegd aan het contextmenu van een extensie-actie. Items boven deze limiet worden genegeerd.
Waarde
6
Methoden
create()
chrome.contextMenus.create(
createProperties: CreateProperties,
callback?: function,
): number | string
Maakt een nieuw contextmenu-item aan. Als er tijdens het aanmaken een fout optreedt, wordt deze mogelijk pas gedetecteerd nadat de callback voor het aanmaken is geactiveerd. Details staan in runtime.lastError
.
Parameters
- createProperties
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:() => void
Retourneren
nummer | string
De ID van het nieuw aangemaakte item.
remove()
chrome.contextMenus.remove(
menuItemId: string | number,
callback?: function,
): Promise<void>
Verwijdert een contextmenu-item.
Parameters
tekenreeks | getal
De ID van het contextmenu-item dat u wilt verwijderen.
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:() => void
Retourneren
Belofte<leegte>
Chroom 123+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
removeAll()
chrome.contextMenus.removeAll(
callback?: function,
): Promise<void>
Verwijdert alle contextmenu-items die door deze extensie zijn toegevoegd.
Parameters
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:() => void
Retourneren
Belofte<leegte>
Chroom 123+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
update()
chrome.contextMenus.update(
id: string | number,
updateProperties: object,
callback?: function,
): Promise<void>
Werkt een eerder gemaakt contextmenu-item bij.
Parameters
- id
tekenreeks | getal
De ID van het item dat moet worden bijgewerkt.
- updateProperties
voorwerp
De bij te werken eigenschappen. Accepteert dezelfde waarden als de functie
contextMenus.create
.- gecontroleerd
boolean optioneel
- contexten
[ ContextType , ... ContextType []] optioneel
- documentUrlPatronen
string[] optioneel
- ingeschakeld
boolean optioneel
- ouder-ID
string | nummer optioneel
De ID van het item dat als ouder van dit item moet worden gemaakt. Let op: U kunt een item niet instellen als onderliggend item van een eigen afstammeling.
- targetUrlPatterns
string[] optioneel
- titel
string optioneel
- type
ItemType optioneel
- zichtbaar
boolean optioneel
Chroom 62+Of het item zichtbaar is in het menu.
- onclick
leeg optioneel
De
onclick
-functie ziet er als volgt uit:(info: OnClickData, tab: Tab) => {...}
- informatieChroom 44+
- tabbladChroom 44+
De details van het tabblad waarop de klik plaatsvond. Deze parameter is niet aanwezig voor platform-apps.
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:() => void
Retourneren
Belofte<leegte>
Chroom 123+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
Evenementen
onClicked
chrome.contextMenus.onClicked.addListener(
callback: function,
)
Wordt geactiveerd wanneer er op een contextmenu-item wordt geklikt.
Parameters
- terugbellen
functie
De
callback
ziet er als volgt uit:(info: OnClickData, tab?: tabs.Tab) => void
- informatie
- tabblad
tabs.Tab optioneel