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
U moet de machtiging "contextMenus"
in het manifest van uw extensie declareren om de API te gebruiken. U moet ook een pictogram van 16 bij 16 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"
},
...
}
Begrippen en 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.
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/etc. 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,
): Promise<void>
Verwijdert een contextmenu-item.
Parameters
tekenreeks | getal
De ID van het contextmenu-item dat u wilt verwijderen.
Retourneren
Belofte<leegte>
Chroom 123+
removeAll()
chrome.contextMenus.removeAll(): Promise<void>
Verwijdert alle contextmenu-items die door deze extensie zijn toegevoegd.
Retourneren
Belofte<leegte>
Chroom 123+
update()
chrome.contextMenus.update(
id: string | number,
updateProperties: object,
): 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.
Retourneren
Belofte<leegte>
Chroom 123+
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