Blokowanie skryptów
Blokowanie skryptów to podstawowy mechanizm ConsentForge do zapobiegania ładowaniu skryptów stron trzecich przed udzieleniem przez użytkownika zgody.
Jak to działa
Gdy ConsentForge się ładuje, przeszukuje stronę w poszukiwaniu skryptów z type="text/plain" i data-consent-category. Te skrypty są nieaktywne — przeglądarki ich nie wykonają.
Gdy zgoda dla kategorii jest udzielona, ConsentForge:
- Znajduje wszystkie pasujące tagi
<script> - Zmienia
typez"text/plain"na"text/javascript" - Dla zewnętrznych skryptów (atrybut
src): odtwarza element<script>, aby wyzwolić ładowanie - Dla skryptów inline: ocenia zawartość przez
eval()(w środowisku sandbox)
Oznaczanie skryptów do blokowania
<!-- Zewnętrzny skrypt -->
<script
type="text/plain"
data-consent-category="analytics"
src="https://www.googletagmanager.com/gtag/js?id=G-XXXXX"
></script>
<!-- Skrypt inline -->
<script type="text/plain" data-consent-category="marketing">
fbq('init', 'YOUR_PIXEL_ID');
</script>
Blokowanie iFrame
iFrame'y (np. YouTube, Vimeo, Google Maps) używają data-src zamiast src:
<iframe
data-src="https://www.youtube.com/embed/VIDEO_ID"
data-consent-category="marketing"
width="560" height="315"
></iframe>
Gdy zgoda jest udzielona, ConsentForge ustawia src z data-src, ładując iframe.
Czego nie można zablokować
- Skryptów ładowanych przez tag manager przed uruchomieniem zgody (zamiast tego użyj GTM z Consent Mode)
- Śledzenia po stronie serwera (użyj API ConsentForge do sprawdzania zgody po stronie serwera)
- Natywnych funkcji przeglądarki (Service Workers, localStorage — te są kontrolowane przez środowisko uruchomieniowe, nie przez blokowanie skryptów)
Weryfikacja
Po konfiguracji otwórz DevTools → Sieć z filtrem "Wszystkie". Skrypty, które powinny być zablokowane, NIE powinny pojawiać się w logu sieciowym przed zaakceptowaniem przez użytkownika. Po zaakceptowaniu powinny się załadować.