Ga naar hoofdinhoud

Scriptblokkering

Scriptblokkering is het kernmechanisme van ConsentForge om te voorkomen dat scripts van derden laden 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 inert — browsers zullen ze niet uitvoeren.

Wanneer toestemming wordt gegeven voor een categorie, zal ConsentForge:

  1. Alle overeenkomende <script>-tags vinden
  2. type wijzigen van "text/plain" naar "text/javascript"
  3. Voor externe scripts (src-attribuut): het <script>-element opnieuw aanmaken om laden te activeren
  4. Voor inline scripts: de inhoud evalueren via eval() (in een beveiligd kader)

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', 'YOUR_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 wordt gegeven, stelt ConsentForge src in vanuit data-src, waarmee de iframe wordt geladen.

Wat niet geblokkeerd kan worden

  • Scripts geladen door een tagbeheerder voordat toestemming actief wordt (configureer GTM met Consent Mode in plaats daarvan)
  • 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 scriptblokkering)

Verificatie

Na installatie, open DevTools → Netwerk met filter "Alles". Scripts die geblokkeerd zouden moeten zijn, mogen NIET in het netwerklog verschijnen voordat de gebruiker accepteert. Na acceptatie moeten ze laden.