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