Pular para o conteúdo principal

Bloqueio de Scripts

O bloqueio de scripts é o mecanismo central do ConsentForge para impedir que scripts de terceiros sejam carregados antes de o utilizador dar o seu consentimento.

Como funciona

Quando o ConsentForge carrega, analisa a página em busca de scripts com type="text/plain" e data-consent-category. Estes scripts estão inactivos — os browsers não os executam.

Quando o consentimento é dado para uma categoria, o ConsentForge:

  1. Encontra todas as tags <script> correspondentes
  2. Altera o type de "text/plain" para "text/javascript"
  3. Para scripts externos (com atributo src): recria o elemento <script> para desencadear o carregamento
  4. Para scripts inline: avalia o conteúdo via eval() (num contexto de sandbox)

Marcar scripts para bloqueio

<!-- Script externo -->
<script
type="text/plain"
data-consent-category="analytics"
src="https://www.googletagmanager.com/gtag/js?id=G-XXXXX"
></script>

<!-- Script inline -->
<script type="text/plain" data-consent-category="marketing">
fbq('init', 'YOUR_PIXEL_ID');
</script>

Bloqueio de iFrames

Os iFrames (por exemplo, YouTube, Vimeo, Google Maps) utilizam data-src em vez de src:

<iframe
data-src="https://www.youtube.com/embed/VIDEO_ID"
data-consent-category="marketing"
width="560" height="315"
></iframe>

Quando o consentimento é dado, o ConsentForge define src a partir de data-src, carregando o iframe.

O que não pode ser bloqueado

  • Scripts carregados por um gestor de tags antes de o consentimento ser disparado (configure o GTM com Consent Mode)
  • Rastreamento no lado do servidor (utilize a API do ConsentForge para verificar o consentimento no servidor)
  • Funcionalidades nativas do browser (Service Workers, localStorage — estes são controlados pelo runtime, não pelo bloqueio de scripts)

Verificação

Após a configuração, abra o DevTools → Rede com o filtro "Tudo". Os scripts que devem estar bloqueados NÃO devem aparecer no registo de rede antes de o utilizador aceitar. Após aceitar, devem carregar.