Descrição
Use a API chrome.contextMenus para adicionar itens ao menu de contexto do Google Chrome. Você pode escolher a quais tipos de objetos suas adições ao menu de contexto se aplicam, como imagens, hiperlinks e páginas.
Permissões
contextMenusVocê precisa declarar a permissão "contextMenus" no manifesto da extensão para usar a API. Além disso, especifique um ícone de 16 por 16 pixels para exibição ao lado do item de menu. Exemplo:
{
"name": "My extension",
...
"permissions": [
"contextMenus"
],
"icons": {
"16": "icon-bitty.png",
"48": "icon-small.png",
"128": "icon-large.png"
},
...
}
Conceitos e uso
Os itens do menu de contexto podem aparecer em qualquer documento (ou frame dentro de um documento), mesmo aqueles com URLs file:// ou chrome://. Para controlar em quais documentos seus itens podem aparecer, especifique o campo documentUrlPatterns ao chamar os métodos create() ou update().
Você pode criar quantos itens de menu de contexto precisar, mas se mais de um da sua extensão estiver visível ao mesmo tempo, o Google Chrome vai recolher automaticamente todos em um único menu principal.
Exemplos
Para testar essa API, instale o exemplo da API contextMenus do repositório chrome-extension-samples.
Tipos
ContextType
Os diferentes contextos em que um menu pode aparecer. Especificar "all" é equivalente à combinação de todos os outros contextos, exceto "launcher". O contexto "launcher" só é compatível com apps e é usado para adicionar itens de menu ao menu de contexto que aparece ao clicar no ícone do app na tela de início/barra de tarefas/dock/etc. Diferentes plataformas podem limitar o que é realmente compatível em um menu de contexto da tela de início.
Enumeração
"all"
"page"
"frame"
"selection"
"link"
"editable"
"image"
"video"
"audio"
"launcher"
"browser_action"
"page_action"
"action"
CreateProperties
Propriedades do novo item do menu de contexto.
Propriedades
-
marcado
booleano opcional
O estado inicial de uma caixa de seleção ou um botão de opção:
truepara selecionado efalsepara não selecionado. Só é possível selecionar um botão de opção por vez em um determinado grupo. -
contexts
[ContextType, ...ContextType[]] opcional
Lista de contextos em que este item de menu vai aparecer. O valor padrão é
['page']. -
documentUrlPatterns
string[] opcional
Restringe o item para que ele seja aplicado apenas a documentos ou frames cujo URL corresponda a um dos padrões fornecidos. Para mais detalhes sobre formatos de padrões, consulte Padrões de correspondência.
-
ativado
booleano opcional
Se este item do menu de contexto está ativado ou desativado. O valor padrão é
true. -
ID
string opcional
O ID exclusivo a ser atribuído a este item. Obrigatório para páginas de eventos. Não pode ser igual a outro ID para essa extensão.
-
parentId
string | number opcional
O ID de um item de menu principal. Isso faz com que o item seja filho de um item adicionado anteriormente.
-
targetUrlPatterns
string[] opcional
Semelhante a
documentUrlPatterns, filtros baseados no atributosrcdas tagsimg,audioevideoe no atributohrefdas tagsa. -
título
string opcional
O texto a ser exibido no item. Isso é obrigatório, a menos que
typesejaseparator. Quando o contexto forselection, use%sna string para mostrar o texto selecionado. Por exemplo, se o valor desse parâmetro for "Traduzir '%s' para Pig Latin" e o usuário selecionar a palavra "legal", o item do menu de contexto para a seleção será "Traduzir 'legal' para Pig Latin". -
tipo
ItemType opcional
O tipo de item de menu. O valor padrão é
normal. -
visível
booleano opcional
Indica se o item está visível no menu.
-
onclick
void optional
Uma função que é chamada quando o item de menu é clicado. Isso não está disponível em um service worker. Em vez disso, registre um listener para
contextMenus.onClicked.A função
onclické assim:(info: OnClickData, tab: Tab) => {...}
-
informações
Informações sobre o item clicado e o contexto em que o clique ocorreu.
-
tab
Os detalhes da guia em que o clique ocorreu. Esse parâmetro não está presente em apps de plataforma.
-
ItemType
O tipo de item de menu.
Enumeração
"normal"
"checkbox"
"rádio"
"separator"
OnClickData
Informações enviadas quando um item do menu de contexto é clicado.
Propriedades
-
marcado
booleano opcional
Uma flag que indica o estado de uma caixa de seleção ou um item de opção depois que ele é clicado.
-
editável
booleano
Uma flag que indica se o elemento é editável (entrada de texto, textarea etc.).
-
frameId
number optional
Chrome 51 ou mais recenteO ID do frame do elemento em que o menu de contexto foi clicado, se ele estava em um frame.
-
frameUrl
string opcional
O URL do frame do elemento em que o menu de contexto foi clicado, se ele estava em um frame.
-
linkUrl
string opcional
Se o elemento for um link, o URL para onde ele aponta.
-
mediaType
string opcional
Um de "image", "video" ou "audio" se o menu de contexto foi ativado em um desses tipos de elementos.
-
string | number
O ID do item de menu que foi clicado.
-
pageUrl
string opcional
O URL da página em que o item de menu foi clicado. Essa propriedade não é definida se o clique ocorreu em um contexto sem uma página atual, como um menu de contexto do iniciador.
-
parentMenuItemId
string | number opcional
O ID do item pai, se houver, do item clicado.
-
selectionText
string opcional
O texto da seleção de contexto, se houver.
-
srcUrl
string opcional
Estará presente em elementos com um URL "src".
-
wasChecked
booleano opcional
Uma flag que indica o estado de uma caixa de seleção ou um item de opção antes de ser clicado.
Propriedades
ACTION_MENU_TOP_LEVEL_LIMIT
O número máximo de itens de extensão de nível superior que podem ser adicionados a um menu de contexto de ação de extensão. Itens além desse limite serão ignorados.
Valor
6
Métodos
create()
chrome.contextMenus.create(
createProperties: CreateProperties,
callback?: function,
): number | string
Cria um novo item de menu de contexto. Se ocorrer um erro durante a criação, ele só será detectado quando o callback de criação for acionado. Os detalhes estarão em runtime.lastError.
Parâmetros
-
createProperties
-
callback
função opcional
O parâmetro
callbacktem esta aparência:() => void
Retorna
-
number | string
O ID do item recém-criado.
remove()
chrome.contextMenus.remove(
menuItemId: string | number,
): Promise<void>
Remove um item do menu de contexto.
Parâmetros
-
string | number
O ID do item do menu de contexto a ser removido.
Retorna
-
Promise<void>
Chrome 123+
removeAll()
chrome.contextMenus.removeAll(): Promise<void>
Remove todos os itens do menu de contexto adicionados por esta extensão.
Retorna
-
Promise<void>
Chrome 123+
update()
chrome.contextMenus.update(
id: string | number,
updateProperties: object,
): Promise<void>
Atualiza um item de menu de contexto criado anteriormente.
Parâmetros
-
ID
string | number
O ID do item a ser atualizado.
-
updateProperties
objeto
As propriedades a serem atualizadas. Aceita os mesmos valores da função
contextMenus.create.-
marcado
booleano opcional
-
contexts
[ContextType, ...ContextType[]] opcional
-
documentUrlPatterns
string[] opcional
-
ativado
booleano opcional
-
parentId
string | number opcional
O ID do item que será o principal. Observação: não é possível definir um item como filho do próprio descendente.
-
targetUrlPatterns
string[] opcional
-
título
string opcional
-
tipo
ItemType opcional
-
visível
booleano opcional
Chrome 62 ou mais recenteIndica se o item está visível no menu.
-
onclick
void optional
A função
onclické assim:(info: OnClickData, tab: Tab) => {...}
-
informaçõesChrome 44 ou mais recente
-
tabChrome 44 ou mais recente
Os detalhes da guia em que o clique ocorreu. Esse parâmetro não está presente em apps de plataforma.
-
-
Retorna
-
Promise<void>
Chrome 123+
Eventos
onClicked
chrome.contextMenus.onClicked.addListener(
callback: function,
)
Disparado quando um item do menu de contexto é clicado.
Parâmetros
-
callback
função
O parâmetro
callbacktem esta aparência:(info: OnClickData, tab?: tabs.Tab) => void
-
informações
-
tab
tabs.Tab opcional
-