Skriptblockierung
Die Skriptblockierung ist ConsentForges Kernmechanismus, um zu verhindern, dass Drittanbieter-Skripte geladen werden, bevor der Nutzer eingewilligt hat.
Funktionsweise
Wenn ConsentForge lädt, durchsucht es die Seite nach Skripten mit type="text/plain" und data-consent-category. Diese Skripte sind inert — Browser führen sie nicht aus.
Wenn die Einwilligung für eine Kategorie erteilt wird, führt ConsentForge folgende Schritte aus:
- Findet alle passenden
<script>-Tags - Ändert
typevon"text/plain"zu"text/javascript" - Bei externen Skripten (Attribut
src): Erstellt das<script>-Element neu, um das Laden auszulösen - Bei Inline-Skripten: Wertet den Inhalt über
eval()aus (in einem gesandboxten Kontext)
Skripte zur Blockierung markieren
<!-- Externes Skript -->
<script
type="text/plain"
data-consent-category="analytics"
src="https://www.googletagmanager.com/gtag/js?id=G-XXXXX"
></script>
<!-- Inline-Skript -->
<script type="text/plain" data-consent-category="marketing">
fbq('init', 'YOUR_PIXEL_ID');
</script>
iFrame-Blockierung
iFrames (z. B. YouTube, Vimeo, Google Maps) verwenden data-src statt src:
<iframe
data-src="https://www.youtube.com/embed/VIDEO_ID"
data-consent-category="marketing"
width="560" height="315"
></iframe>
Wenn die Einwilligung erteilt wird, setzt ConsentForge src aus data-src und lädt damit den iFrame.
Was nicht blockiert werden kann
- Skripte, die von einem Tag-Manager vor dem Einwilligungs-Trigger geladen werden (stattdessen GTM mit Consent Mode konfigurieren)
- Serverseitiges Tracking (verwenden Sie die ConsentForge-API, um die Einwilligung serverseitig zu prüfen)
- Browsereigene Funktionen (Service Workers, localStorage — diese werden von der Runtime kontrolliert, nicht durch Skriptblockierung)
Überprüfung
Öffnen Sie nach der Einrichtung DevTools → Netzwerk mit dem Filter „Alle". Skripte, die blockiert sein sollten, sollten NICHT im Netzwerkprotokoll erscheinen, bevor der Nutzer akzeptiert. Nach dem Akzeptieren sollten sie geladen werden.