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:
- Encontra todas as tags
<script>correspondentes - Altera o
typede"text/plain"para"text/javascript" - Para scripts externos (com atributo
src): recria o elemento<script>para desencadear o carregamento - 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.