Bloqueo de scripts
El bloqueo de scripts es el mecanismo central de ConsentForge para impedir que los scripts de terceros se carguen antes de que el usuario haya dado su consentimiento.
Cómo funciona
Cuando ConsentForge se carga, escanea la página en busca de scripts con type="text/plain" y data-consent-category. Estos scripts están inactivos — los navegadores no los ejecutarán.
Cuando se otorga consentimiento para una categoría, ConsentForge:
- Encuentra todas las etiquetas
<script>coincidentes - Cambia
typede"text/plain"a"text/javascript" - Para scripts externos (atributo
src): recrea el elemento<script>para activar la carga - Para scripts en línea: evalúa el contenido mediante
eval()(en un contexto aislado)
Marcar scripts para bloqueo
<!-- Script externo -->
<script
type="text/plain"
data-consent-category="analytics"
src="https://www.googletagmanager.com/gtag/js?id=G-XXXXX"
></script>
<!-- Script en línea -->
<script type="text/plain" data-consent-category="marketing">
fbq('init', 'YOUR_PIXEL_ID');
</script>
Bloqueo de iFrames
Los iFrames (p. ej., YouTube, Vimeo, Google Maps) usan data-src en lugar de src:
<iframe
data-src="https://www.youtube.com/embed/VIDEO_ID"
data-consent-category="marketing"
width="560" height="315"
></iframe>
Cuando se otorga el consentimiento, ConsentForge establece src a partir de data-src, cargando el iframe.
Qué no se puede bloquear
- Scripts cargados por un gestor de etiquetas antes de que se active el consentimiento (en su lugar, configure GTM con Consent Mode)
- Seguimiento del lado del servidor (use la API de ConsentForge para verificar el consentimiento en el servidor)
- Funciones nativas del navegador (Service Workers, localStorage — estas están controladas por el runtime, no por el bloqueo de scripts)
Verificación
Después de la configuración, abra DevTools → Red con el filtro "Todos". Los scripts que deben estar bloqueados NO deben aparecer en el registro de red antes de que el usuario acepte. Después de aceptar, deben cargarse.