Blocage de scripts
Le blocage de scripts est le mécanisme principal de ConsentForge pour empêcher les scripts tiers de se charger avant que l'utilisateur ait consenti.
Comment ça fonctionne
Lorsque ConsentForge se charge, il analyse la page à la recherche de scripts avec type="text/plain" et data-consent-category. Ces scripts sont inertes — les navigateurs ne les exécutent pas.
Lorsque le consentement est accordé pour une catégorie, ConsentForge :
- Trouve tous les tags
<script>correspondants - Change
typede"text/plain"à"text/javascript" - Pour les scripts externes (attribut
src) : recrée l'élément<script>pour déclencher le chargement - Pour les scripts inline : évalue le contenu via
eval()(dans un contexte sandboxé)
Marquer les 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 inline -->
<script type="text/plain" data-consent-category="marketing">
fbq('init', 'VOTRE_PIXEL_ID');
</script>
Blocage des iFrames
Les iFrames (ex. YouTube, Vimeo, Google Maps) utilisent data-src au lieu 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 tags avant le déclencheur de consentement (configurez GTM avec Consent Mode à la place)
- Le tracking 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 devraient ê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.