Scriptblokkering
Scriptblokkering is het kernmechanisme van ConsentForge om te voorkomen dat scripts van derden worden geladen voordat de gebruiker toestemming heeft gegeven.
Hoe het werkt
Wanneer ConsentForge laadt, scant het de pagina op scripts met type="text/plain" en data-consent-category. Deze scripts zijn inactief — browsers voeren ze niet uit.
Wanneer voor een categorie toestemming is gegeven, doet ConsentForge het volgende:
- Alle overeenkomende
<script>-tags zoeken typewijzigen van"text/plain"naar"text/javascript"- Voor externe scripts (attribuut
src): het<script>-element opnieuw aanmaken om laden te activeren - Voor inline scripts: de inhoud evalueren via
eval()(in een sandbox-omgeving)
Scripts markeren voor blokkering
<!-- Extern script -->
<script
type="text/plain"
data-consent-category="analytics"
src="https://www.googletagmanager.com/gtag/js?id=G-XXXXX"
></script>
<!-- Inline script -->
<script type="text/plain" data-consent-category="marketing">
fbq('init', 'UW_PIXEL_ID');
</script>
iFrame-blokkering
iFrames (bijv. YouTube, Vimeo, Google Maps) gebruiken data-src in plaats van src:
<iframe
data-src="https://www.youtube.com/embed/VIDEO_ID"
data-consent-category="marketing"
width="560" height="315"
></iframe>
Wanneer toestemming is gegeven, stelt ConsentForge src in vanuit data-src, waardoor het iframe wordt geladen.
Wat niet geblokkeerd kan worden
- Scripts geladen door een tagmanager voordat de toestemming is verwerkt (gebruik in plaats daarvan GTM met Consent Mode)
- Server-side tracking (gebruik de ConsentForge API om server-side toestemming te controleren)
- Browser-native functies (Service Workers, localStorage — deze worden beheerd door de runtime, niet door scriptblokkering)
Verificatie
Open na de installatie DevTools → Netwerk met filter "Alles". Scripts die geblokkeerd moeten worden, mogen NIET in het netwerklogboek verschijnen voordat de gebruiker accepteert. Na acceptatie moeten ze worden geladen.