Passa al contenuto principale

Blocco degli script

Il blocco degli script è il meccanismo principale di ConsentForge per impedire agli script di terze parti di caricarsi prima che l'utente abbia dato il consenso.

Come funziona

Quando ConsentForge si carica, scansiona la pagina alla ricerca di script con type="text/plain" e data-consent-category. Questi script sono inerti — i browser non li eseguiranno.

Quando viene dato il consenso per una categoria, ConsentForge:

  1. Trova tutti i tag <script> corrispondenti
  2. Cambia type da "text/plain" a "text/javascript"
  3. Per gli script esterni (attributo src): ricrea l'elemento <script> per attivare il caricamento
  4. Per gli script inline: valuta il contenuto tramite eval() (in un contesto sandboxed)

Contrassegnare gli script per il blocco

<!-- Script esterno -->
<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>

Blocco iFrame

Gli iFrame (es. YouTube, Vimeo, Google Maps) usano data-src invece di src:

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

Quando viene dato il consenso, ConsentForge imposta src da data-src, caricando l'iframe.

Cosa non può essere bloccato

  • Script caricati da un tag manager prima che il consenso si attivi (usa GTM con Consent Mode)
  • Tracking lato server (usa l'API ConsentForge per verificare il consenso lato server)
  • Funzionalità native del browser (Service Workers, localStorage — questi sono controllati dal runtime, non dal blocco degli script)

Verifica

Dopo la configurazione, apri DevTools → Rete con il filtro "Tutti". Gli script che dovrebbero essere bloccati NON dovrebbero apparire nel log di rete prima che l'utente accetti. Dopo l'accettazione, dovrebbero caricarsi.