Bloqueo de scripts
El bloqueo de scripts es el mecanismo principal de ConsentForge para evitar que 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 son inertes — 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 consentimiento, ConsentForge establece src desde data-src, cargando el iframe.
Qué no se puede bloquear
- Scripts cargados por un gestor de etiquetas antes de que se active el consentimiento (configure GTM con Consent Mode en su lugar)
- Rastreo del lado del servidor (use la API de ConsentForge para verificar el consentimiento del lado del servidor)
- Funciones nativas del navegador (Service Workers, localStorage — estas son controladas por el tiempo de ejecución, no por el bloqueo de scripts)
Verificación
Después de la configuración, abra DevTools → Red con el filtro "Todo". Los scripts que deben bloquearse NO deben aparecer en el registro de red antes de que el usuario acepte. Después de aceptar, deben cargarse.