feat: client-seitige erkennung fuer elementor-videos und JS-iframes

- frontend.js erkennt JS-nachgeladene iframes (Slider etc.) per initialem Scan
  + MutationObserver und ersetzt sie durch den Platzhalter.
- Elementor-Video-Widgets: data-settings (youtube_url/vimeo_url) wird gelesen,
  zu Embed-URL konvertiert, Widget neutralisiert und durch Platzhalter ersetzt.
- Service-Daten + i18n werden dafuer ans Frontend lokalisiert (cbConfig).
- readme: Erkennung + Grenzen (Elementor-Vorschaubild) dokumentiert.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
s4luorth
2026-06-07 15:11:48 +02:00
parent 3c37bf63cc
commit a738841d60
3 changed files with 234 additions and 2 deletions

View File

@@ -76,10 +76,20 @@ Veröffentlichung (für den Betreiber): Plugin-ZIP per Gitea-Actions (Tag `v*`)
manuell per curl an den Endpoint `POST /api/v1/releases` des Backends laden. Die
ZIP muss einen Ordner `gdpr-content-blocker/` auf oberster Ebene enthalten.
== Erkennung ==
* Server-seitig: iframes im initialen HTML werden anhand der Erkennungsmuster blockiert.
* Client-seitig (automatisch): per JavaScript nachgeladene iframes (z. B. Slider) sowie
Elementor-Video-Widgets werden erkannt und durch den Platzhalter ersetzt.
== Bekannte Grenzen ==
* Auto-Erkennung greift nur auf iframes im initialen Server-HTML. Durch JavaScript nachgeladene iframes
werden nicht automatisch erkannt. Für diese Fälle den manuellen Shortcode verwenden.
* Client-seitige Erkennung ist „best effort": Bei per JS nachgeladenen iframes kann im
Einzelfall ein bereits gestarteter Request nicht garantiert verhindert werden. Für
maximale Rechtssicherheit den manuellen Shortcode verwenden.
* Bei Elementor-Videos mit Bild-Overlay kann das Vorschaubild (z. B. von ytimg.com) als
CSS-Hintergrund bereits beim Laden angefragt werden. Empfehlung: in Elementor das
Bild-Overlay deaktivieren oder ein eigenes Vorschaubild verwenden.
== Changelog ==