JavaScript APIs
JavaScript APIs for WebExtensions can be used inside the extension's background scripts and in any other documents bundled with the extension, including browser action (en-US) or page action (en-US) popups, sidebars (en-US), options pages (en-US), or new tab pages. A few of these APIs can also be accessed by an extension's content scripts (see the list in the content script guide).
To use the more powerful APIs you need to request permission in your extension's manifest.json.
You can access the APIs using the browser
namespace:
function logTabs(tabs) {
console.log(tabs);
}
browser.tabs.query({currentWindow: true}, logTabs);
Many of the APIs are asynchronous, returning a Promise
:
function logCookie(c) {
console.log(c);
}
function logError(e) {
console.error(e);
}
var setCookie = browser.cookies.set(
{url: "https://developer.mozilla.org/"}
);
setCookie.then(logCookie, logError);
Note that this is different from Google Chrome's extension system, which uses the chrome
namespace instead of browser
, and which uses callbacks instead of promises for asynchronous functions. As a porting aid, the Firefox implementation of WebExtensions APIs supports chrome
and callbacks as well as browser
and promises. Mozilla has also written a polyfill which enables code that uses browser
and promises to work unchanged in Chrome: https://github.com/mozilla/webextension-polyfill.
Firefox also implements these APIs under the chrome
namespace using callbacks. This allows code written for Chrome to run largely unchanged in Firefox for the APIs documented here.
Microsoft Edge uses the browser
namespace, but doesn't yet support promise-based asynchronous APIs. In Edge, for the time being, asynchronous APIs must use callbacks.
Not all browsers support all the APIs: for the details, see Browser support for JavaScript APIs.
- alarms
Executar um código agendado para um horário específico no futuro. Isto é como o
setTimeout()
(en-US) esetInterval()
(en-US), exceto essas funções não funcionam no segundo plano com páginas carregadas sob demanda.- bookmarks
A API WebExtensions
bookmarks
permite uma extensão interagir e manipular o sistema de favoritos do navegador. Você pode pode usá-lo para favoritar páginas, obter favoritos existentes e, editar, remover ou organizar os favoritos.- browserAction
Adiciona um botão a barra de ferramentas do navegador.
- browserSettings
Habilita uma extensão para modificar certas configurações globais do navegador. Cada propriedade desta API é um objeto
types.BrowserSetting
, provendo a capacidade de modificar uma configuração particular.Devido estas serem configurações globais, é possível haver conflito entre extensões. Veja a documentaçãoBrowserSetting.set()
para detalhes de como ligar com conflitos .- browsingData
Habilita extensões a limpar os dados que estão acumulados enquando o usuário navega.
- clipboard
A API de área de transferência habilita uma extensão para copiar itens para a área de transferência do sistema. Atualmente a API suporta apenas a cópia de imagens, mas é pretendido suportar a cópia de texto e HTML no futuro.
- commands
Escuta por usuário executando comandos que você registrou usando o
commands
manifest.json key.- contentScripts
Use esta API para registrar o conteúdo de scripts. Registrando um conteúdo de scripts instrui o navegador para inserir conteúdo de script fornecido em páginas que batem com um padrão de URL fornecida.
- contextualIdentities
Trabalhar com identidades contextuais: listar, criar, remover e atualizar identidades contextuais.
- cookies
Habilita extensões a obter e atribuir cookies, e ser notificado quando eles mudam.
Adicione itens ao sistema de menu do navegador.
- tabs
Interact with the browser's tab system.
- tema
Permite que extensões do navegador alterem seu tema.