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 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 são inertes — os browsers não os irão executar.

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

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

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 iFrame

iFrames (ex. YouTube, Vimeo, Google Maps) usam 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 do consentimento disparar (use GTM com Consent Mode)
  • Rastreamento do lado do servidor (use a API 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 DevTools → Rede com filtro "Tudo". Scripts que devem ser bloqueados NÃO devem aparecer no registo de rede antes de o utilizador aceitar. Após aceitar, devem carregar.