Aller au contenu principal

Blocage de scripts

Le blocage de scripts est le mécanisme central de ConsentForge pour empêcher les scripts tiers de se charger avant que l'utilisateur ait donné son consentement.

Fonctionnement

Lorsque ConsentForge se charge, il scanne la page à la recherche de scripts avec type="text/plain" et data-consent-category. Ces scripts sont inertes — les navigateurs ne les exécuteront pas.

Lorsque le consentement est accordé pour une catégorie, ConsentForge :

  1. Trouve toutes les balises <script> correspondantes
  2. Change le type de "text/plain" à "text/javascript"
  3. Pour les scripts externes (attribut src) : recrée l'élément <script> pour déclencher le chargement
  4. Pour les scripts en ligne : évalue le contenu via eval() (dans un contexte isolé)

Marquage des scripts pour le blocage

<!-- Script externe -->
<script
type="text/plain"
data-consent-category="analytics"
src="https://www.googletagmanager.com/gtag/js?id=G-XXXXX"
></script>

<!-- Script en ligne -->
<script type="text/plain" data-consent-category="marketing">
fbq('init', 'YOUR_PIXEL_ID');
</script>

Blocage des iFrames

Les iFrames (ex. YouTube, Vimeo, Google Maps) utilisent data-src à la place de src :

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

Lorsque le consentement est accordé, ConsentForge définit src à partir de data-src, chargeant ainsi l'iframe.

Ce qui ne peut pas être bloqué

  • Les scripts chargés par un gestionnaire de balises avant le déclenchement du consentement (configurez GTM avec Consent Mode à la place)
  • Le suivi côté serveur (utilisez l'API ConsentForge pour vérifier le consentement côté serveur)
  • Les fonctionnalités natives du navigateur (Service Workers, localStorage — celles-ci sont contrôlées par le runtime, pas par le blocage de scripts)

Vérification

Après la configuration, ouvrez DevTools → Réseau avec le filtre "Tout". Les scripts qui doivent être bloqués ne doivent PAS apparaître dans le journal réseau avant que l'utilisateur accepte. Après acceptation, ils doivent se charger.