Abrindo Links em uma Nova Aba: Extensão do Chrome
Resposta Rápida
Para abrir um link em uma nova aba usando uma extensão do Chrome, utilize o método chrome.tabs.create({ url: "http://www.seusite.com" })
. Não se esqueça de especificar a permissão "tabs"
no arquivo manifest.json:
// "Abra, novas abas, como portas mágicas!"
chrome.tabs.create({ url: "http://www.seusite.com" });
Você pode executar esse código no script de plano de fundo ou na janela popup da sua extensão para abrir uma nova aba rapidamente com a URL desejada.
Melhores Práticas para Criar Abas
Atualize para a Última Versão por Segurança
Melhorar a segurança requer o uso do Manifest Version 2. Isso evitará a possibilidade de injeção de scripts maliciosos e fortalecerá a proteção da sua extensão.
Usando Scripts em Segundo Plano para Organizar o Código
Scripts em segundo plano são seus ajudantes secretos. Adicione uma página de script em segundo plano ao seu manifest.json para facilitar a gestão do código. Isso simplificará a depuração e ajudará a manter seu projeto organizado.
Movendo Scripts para Arquivos Separados para Melhor Desempenho
Usar scripts externos pode melhorar o desempenho, permitindo o carregamento em paralelo. Isso também suporta as políticas de segurança de conteúdo.
Scripts Inline: Coisa do Passado
Os dias de escrever scripts diretamente dentro do index.html estão no passado. Agora, páginas de evento e scripts em segundo plano que atendem aos padrões modernos de segurança estão em alta.
Testando em Diferentes Ambientes de Navegador
Não se esqueça de testar sua extensão regularmente em diversos ambientes de navegador. Erros podem interromper o funcionamento correto das abas e prejudicar a experiência do usuário com seu produto.
Dicas de Programação
Adicionando Dinamismo com JavaScript e jQuery
Para abrir links de forma dinâmica, JavaScript e jQuery são indispensáveis. Dica: se a tarefa puder ser realizada com JavaScript puro, não há necessidade de complicar o código com jQuery:
// "Não clique em mim, eu me abrirei sozinho!" - todo link.
document.querySelectorAll('a[target="_blank"]').forEach(link => {
link.addEventListener('click', event => {
// Voilà, a aba está pronta!
chrome.tabs.create({ url: link.href });
});
});
Método Alternativo: window.open()
Às vezes, window.open()
pode ser necessário para lidar com recursos específicos da janela. É uma ótima alternativa ao chrome.tabs.create()
.
Ciclo de Vida de uma Aba
| Etapas Chave | Eventos na Vida de uma Aba do Chrome |
| --------------------------- | ------------------------------------ |
| Clique em um link | 🖱️→🔗 |
| Navegador sem extensão | Abre na aba atual ↩️ |
| Navegador com extensão ativada | Abre em uma nova aba 🆕🔲 |
Lembre-se:
<a href="https://example.com" target="_blank">Pronto para uma nova jornada 🛩️</a>
Ao clicar no link, você embarca em uma nova aventura mantendo a página original acessível.
Recomendações de Melhoria para UX
Mantendo o Foco na Janela Popup
Para aprimorar a experiência do usuário, considere manter o foco na janela popup ao abrir uma nova aba:
// "Prefiro ficar nas sombras." - diria a nova aba.
chrome.tabs.create({ url: "http://www.seusite.com", active: false });
Bloqueando o Comportamento Padrão do Evento
Gerenciar abas pode exigir o bloqueio da ação padrão ao clicar:
element.addEventListener('click', event => {
event.preventDefault(); // "PARE! Este é meu evento, e eu decido o que fazer com ele!"
// Vamos começar a aventura em uma nova aba!
});
Estruturando Corretamente seu arquivo manifest.json
A chave para uma extensão bem-sucedida é um arquivo manifest.json bem estruturado. Certifique-se de que todas as permissões e configurações estão devidamente especificadas para que a função de criação de aba funcione corretamente.
Mantenha-se Informado, Mantenha-se à Frente
Quer estar sempre um passo à frente? Fique por dentro das notícias e atualizações do Chrome, estude as melhores práticas. Sua fonte de conhecimento será developer.chrome.com.
Recursos Úteis
- chrome.runtime | Chrome Developers - A API de extensões do Chrome que simplifica a comunicação dentro da extensão.
- tabs.create() - Mozilla | MDN — Um guia sobre como usar o método de criação de novas abas em extensões do Firefox.
- Messaging | Chrome Developers - Métodos de comunicação em extensões do Chrome.
- GitHub - GoogleChrome/chrome-extensions-samples: Amostras de Extensões do Chrome — Uma coleção oficial de exemplos para desenvolvimento de extensões do Chrome.
- Content Scripts | Chrome Developers — Abordagens para integrar scripts em páginas da web usando extensões do Chrome.