imasters.com.br Open in urlscan Pro
45.42.162.11  Public Scan

URL: https://imasters.com.br/desenvolvimento/chrome-extension-scripts-e-acessos
Submission: On May 17 via api from BY — Scanned from DE

Form analysis 2 forms found in the DOM

/resultado-de-busca

<form action="/resultado-de-busca" class="search-form">
  <div class="search-form__field"><label class="search-form__label">Digite sua palavra-chave</label><input type="text" name="s" class="search-form__input" placeholder="O que você procura?"></div><button type="submit" class="search-form__submit"><span
      class="icon icon--search "><svg width="17px" height="17px" viewBox="0 0 30 30">
        <title>Busca</title>
        <path fill="currentColor"
          d="M22.764 20.643l6.797 6.797c0.586 0.586 0.586 1.536 0 2.121s-1.536 0.586-2.121 0l-6.797-6.797c-2.171 1.713-4.912 2.736-7.893 2.736-7.042 0-12.75-5.708-12.75-12.75s5.708-12.75 12.75-12.75c7.042 0 12.75 5.708 12.75 12.75 0 2.98-1.023 5.722-2.736 7.893zM19.74 19.548c1.708-1.756 2.76-4.154 2.76-6.798 0-5.385-4.365-9.75-9.75-9.75s-9.75 4.365-9.75 9.75c0 5.385 4.365 9.75 9.75 9.75 2.644 0 5.041-1.052 6.798-2.76 0.029-0.034 0.059-0.068 0.092-0.1s0.066-0.063 0.1-0.092z">
        </path>
      </svg></span></button>
</form>

<form>
  <header class="newsletter__header">
    <h2 class="title-highlight">Assine nossa<strong class="title-highlight__large">Newsletter</strong></h2>
    <p>Fique em dia com as novidades do iMasters! Assine nossa newsletter e receba conteúdos especiais curados por nossa equipe</p>
  </header>
  <div class="newsletter__form"><span id="" class="field--has-icon field field--email  "><span class="field__content"><input type="email" id="" name="newsletterEmail" placeholder="Qual é o seu e-mail?"><span class="icon icon--package "><svg
            width="20px" height="20px" viewBox="0 0 28 30">
            <title>package</title>
            <path fill="currentColor"
              d="M20.572 11.435c-0.008 0.004-0.016 0.008-0.024 0.012l-5.548 2.774v12.211l9.306-4.653c0.425-0.211 0.693-0.644 0.694-1.118v-11.44l-4.428 2.214zM10.301 4.077l9.699 4.849 3.449-1.724-9.144-4.572c-0.35-0.174-0.761-0.173-1.109-0.001l-2.895 1.448zM7.506 5.474l-3.455 1.727 9.699 4.849 3.455-1.727-9.699-4.849zM6.836 3.014c0.068-0.042 0.139-0.078 0.213-0.107l5.032-2.516c1.051-0.522 2.286-0.522 3.338 0l10 5c1.274 0.633 2.080 1.933 2.081 3.357v11.913c-0.001 1.423-0.807 2.723-2.078 3.355l-10 5c-1.056 0.529-2.3 0.529-3.356 0l-10.003-5.002c-1.273-0.641-2.072-1.949-2.063-3.366v-11.901c0.001-1.423 0.807-2.723 2.078-3.355l4.758-2.379zM12.5 26.439v-12.217l-10-5-0 11.436c-0.003 0.475 0.263 0.911 0.684 1.123l9.316 4.658z">
            </path>
          </svg></span></span></span><button type="submit" class="btn-primary btn-primary--submit">Assinar</button></div>
</form>

Text Content

we are developers

 * Fórum iMasters
 * Portal E-Commerce Brasil
 * iMasters Business

Busca

close-circle
Digite sua palavra-chave
Busca


POWERED BY:

 * facebook
 * twitter
 * linkedin

 * packageBack-End
 * packageMobile
 * packageFront End
 * packageDevSecOps
 * packageDesign & UX
 * packageData
 * packageAPIs e Microsserviços



Desenvolvimento

19 jul, 2016


CHROME EXTENSION: SCRIPTS E ACESSOS

 * facebook-color
 * twitter-color
 * linkedin-color

COMPARTILHE!


ANDRÉ FERREIRA

Tem 4 artigos publicados com 1600 visualizações desde 2016

Publicidade



ANDRÉ FERREIRA

4edit

é autodidata em desenvolvimento de sistemas, analista de sistemas/programador
com mais de 10 anos de experiência de mercado. Formação em Marketing pela
Faculdade Anhanguera e em formação em Direito pela Faculdade Estácio de Sá.
Empreendedor serial, criador dos blogs Node Decode e BR.JS, das ferramentas
Crawler.com.br, Hawk, Take and Make, Baixou (https://www.baixou.com.br/) e
It'simple (https://itssimple.com.br/), entre outros. Experiência em
desenvolvimento de buscadores de produtos, webcrawlers, arquitetura de software,
desenvolvimento de software, gestão de empresas, gestão comercial, gestão de
mídias e mídias sociais, Atualmente CTO do It'simple
(https://itssimple.com.br/), redator do BR.JS (http://brjs.com.br/) e
palestrante em eventos de tecnologia como Google GDG, Google I/O
(http://webes.com.br/io16/).

Leia mais
4 ago, 2016


DADOS ESTRUTURADOS (RICH SNIPPETS) PARA O GOOGLE

29 jul, 2016


CHROME EXTENSION + PUSH BROWSER COM ONESIGNAL

19 jul, 2016


CHROME EXTENSION: SCRIPTS E ACESSOS



Hoje vou falar um pouco de Chrome Extensions, pois precisei estudar bastante
para desenvolver a nova ferramenta da minha startup que é uma extensão para
Chrome, futuramente liberada também para Firefox, disponível para teste beta em
https://goo.gl/1ui3sU. Achei o tema interessante, pois tive muito problema para
resolver. Primeiramente, vamos entender como funciona uma extensão para Google
Chrome…

Aparentemente, as extensões para Chrome são scripts feitos em JavaScript que
podem ou não conter um conteúdo visual, e que interagem com a página em que você
está no navegador, porém essa interação é limitada por questões de segurança,
então basicamente existem três tipos de scripts que podem ser criados para sua
extensão.


SCRIPTS DE CONTEÚDO

O primeiro e mais comum são scripts que rodam em ligação parcial com a página
aberta – é possível inserir, editar e remover elementos via JavaScript, além de
adicionar bibliotecas como jQuery e AngularJS para facilitar o desenvolvimento,
mas o content_script não tem acesso ao window da página. Sendo assim, não será
possível executar, por exemplo, scripts existentes na página. Para criar um
content_scripts, basta adicionar no manifest.json as seguintes linhas:

"content_scripts": [{
    "js": ["jquery-3.0.0.min.js", "contentscript.js"],
    "css": ["css/style.css"],
    "matches": ["*://*/*"]
}],

No exemplo acima, foram solicitados o jQuery e um script personalizado chamado
coontentscript.js. Perceba que é possível chamar quantos arquivos forem
necessários. Ainda é possível chamar CSS, e suas bibliotecas não irão
influenciar a página diretamente, já que os escopos são separados. Veja a
ilustração da documentação:



Para rodar um content_script, será necessária uma permissão de leitura e escrita
de abas que deve ser informada no próprio manifest.json:

"permissions": [
    "tabs"     
]

Lembrando: será possível realizar manipulação de componentes do document, mass
não será possível acessar o window. A documentação completa está disponível em:
https://developer.chrome.com/extensions/content_scripts


SCRIPTS DE BACKGROUND

O script de background será utilizado para rotinas que dependem de acesso total
ao Chrome e suas abas, porém esse modo não tem acesso ao document. É possível,
por exemplo, implementar Push Browser diretamente no background, mas não será
possível realizar interação entre o background e o content_script – eles rodam
em ‘instâncias’ diferentes. Para implementar um script em background, será
necessário informar no manifest.json:

"background": {
    "persistent": false,
    "scripts": ["OneSignal.js", "background.js"]
},

Perceba que no exemplo acima, utilizei o OneSignal para Push Browser. A
implementação é bem simples, vou deixar o link tanto da documentação dos scripts
background: https://developer.chrome.com/extensions/background_pages quanto da
documentação do OneSignal para Chrome Extension:
https://documentation.onesignal.com/docs/chrome-app-sdk-installation

O parâmetro ‘persistent’ define se o script ficará rodando de formar contínua,
ou se será apenas executado uma única vez, caso haja necessidade de realizar
monitoramentos, por exemplo.


RECURSOS ACESSÍVEIS WEB

O terceiro modo de script possui interação direta com o window e o document, mas
não possui interação entre os content scripts e background. A minha sugestão é
utilizar campos hidden caso haja necessidade de uma comunicação, já que o
content_scripts e o injection possuem ambos acesso ao document, pelo menos foi a
forma como consegui resolver o problema de disparar eventos do window da aba.
Para implementar um injetion, serão necessárias duas etapas. Primeiro, informe
no manifest.json quais scripts estão autorizados a ser injetado na aba:

"web_accessible_resources": ["facebookSDK.js", "script.js"],

No meu caso, estou usando API do Facebook para gerar telas de compartilhamento,
e possui um script personalizado. Dentro do content scripts, adicione a chamada
do script

//FacebookSDK
var s = document.createElement('script');
s.src = chrome.extension.getURL('facebookSDK.js');
s.onload = function() {this.parentNode.removeChild(this);};
(document.head || document.documentElement).appendChild(s);

Quero terminar o artigo deixando um abraço aos meus sócios do It’simple e da
1001 Cupom de Descontos por terem concebido essa que, para mim, é a ferramenta
mais útil que eu já fiz. Comparação em tempo real e checkout automático de
cupons na própria loja eram um sonho que se tornou real graças essa parceria, e
a todos os meus queridos leitores deixo mais uma vez o link para o teste
beta https://goo.gl/1ui3sU. Vejam o vídeo de explicação do uso do radar, e a
lista de lojas parceira do projeto está disponível em
https://itssimple.com.br/stats.

De 0 a 10, o quanto você recomendaria este artigo para um amigo?

012345678910


FILEARTIGOS PUBLICADOS POR ESTE AUTOR


ANDRÉ FERREIRA

4 ago, 2016play


DADOS ESTRUTURADOS (RICH SNIPPETS) PARA O GOOGLE


ANDRÉ FERREIRA

29 jul, 2016play


CHROME EXTENSION + PUSH BROWSER COM ONESIGNAL


ANDRÉ FERREIRA

19 jul, 2016play


CHROME EXTENSION: SCRIPTS E ACESSOS

Saiba mais


ANDRÉ FERREIRA

 * facebook
 * e-mail

edit4 Artigo(s)

é autodidata em desenvolvimento de sistemas, analista de sistemas/programador
com mais de 10 anos de experiência de mercado. Formação em Marketing pela
Faculdade Anhanguera e em formação em Direito pela Faculdade Estácio de Sá.
Empreendedor serial, criador dos blogs Node Decode e BR.JS, das ferramentas
Crawler.com.br, Hawk, Take and Make, Baixou (https://www.baixou.com.br/) e
It'simple (https://itssimple.com.br/), entre outros. Experiência em
desenvolvimento de buscadores de produtos, webcrawlers, arquitetura de software,
desenvolvimento de software, gestão de empresas, gestão comercial, gestão de
mídias e mídias sociais, Atualmente CTO do It'simple
(https://itssimple.com.br/), redator do BR.JS (http://brjs.com.br/) e
palestrante em eventos de tecnologia como Google GDG, Google I/O
(http://webes.com.br/io16/).




ESTE PROJETO É MANTIDO E PATROCINADO PELAS EMPRESAS





ASSINE NOSSANEWSLETTER

Fique em dia com as novidades do iMasters! Assine nossa newsletter e receba
conteúdos especiais curados por nossa equipe

packageAssinar

 * Sobre o iMasters
 * Política de Privacidade
 * Fale conosco
 * Quero ser autor
 * Fórum
 * iMasters Business