Ergänzt aussagekräftige Beispiel-Platzhalter im vCard-Formular und zeigt den generierten vCard-Text als Live-Vorschau im vCard-Modus an. Das erleichtert die Eingabe und macht das spätere QR-Ergebnis sofort nachvollziehbar. Made-with: Cursor
QR Code Generator
Ein einfacher QR-Code-Generator, der vollständig im Browser läuft. Keine Daten werden an externe Server gesendet.
Dieses Projekt basiert auf dem Code von https://qr.alster.space/. Er wurde um verschiedene praktische Funktionen erweitert.
Features
- Vollständig clientseitig (keine Server-Kommunikation)
- URL-Parameter für alle Einstellungen (inkl. Modus Text/WLAN/Termin)
- Anpassbare Größen und Farben
- Verschiedene Fehlerkorrektur-Level
- Download-Funktion
- Teilen-Funktion (Link mit aktuellen Einstellungen kopieren)
- Hinweis bei WiFi: Passwort im Link im Klartext
- Responsive Design
- WiFi QR-Code Unterstützung mit eigener UI
- Dynamische Klartext-Anzeige
- Automatische QR-Code-Generierung
- Sicher gegen XSS (Content Security Policy, validierte Eingaben, kein Inline-JS)
Docker Setup
Mit Docker Compose (empfohlen)
# Container bauen und starten
docker-compose up -d
# Container stoppen
docker-compose down
Docker build/run
# Image bauen
docker build -t qr-generator .
# Container starten
docker run -d -p 8080:80 --name qr-generator qr-generator
# Container stoppen
docker stop qr-generator
docker rm qr-generator
Verwendung
Nach dem Start ist die Anwendung unter http://localhost:8080 erreichbar.
Normale QR-Codes
Geben Sie einfach Text oder URLs in das erste Eingabefeld ein. Der QR-Code wird automatisch generiert.
WiFi QR-Codes
Die App bietet spezielle Eingabefelder für WiFi-Daten:
- WiFi SSID: Geben Sie den Namen Ihres WLAN-Netzwerks ein
- WiFi Password: Geben Sie das WLAN-Passwort ein
- Automatische Generierung: Der QR-Code wird im korrekten WiFi-Format erstellt
- Klartext-Anzeige: Das Textfeld zeigt den generierten WiFi-Code an
Verschlüsselung: Fest eingestellt auf WPA/WPA2
Hidden Network: Standardmäßig auf false (nicht versteckt)
URL-Parameter
Die Anwendung unterstützt folgende URL-Parameter:
mode- Inhaltstyp:text,wifioderevent(Termin/Kalender). Ohnemodewird bei vorhandenen Termin-Feldern automatisch der Termin-Modus gewählt.text- Text oder URL für den QR-Code (Modus Text)ssid- WiFi SSID (Modus WLAN)password- WiFi Passwort (Modus WLAN)eventTitle- Titel des Termins (Modusevent)eventStart- Beginn im FormatYYYY-MM-DDTHH:mm(lokale Ortszeit Europe/Berlin, z. B.2026-04-16T14:30)eventEnd- Ende (optional), gleiches Format wieeventStarteventLocation- Ort (optional)eventDescription- Beschreibung (optional)size- Größe (128, 256, 512, 1024)errorCorrection- Fehlerkorrektur (L, M, Q, H)foreground- Vordergrundfarbe (Hex-Code)background- Hintergrundfarbe (Hex-Code)
Beispiele
Normale QR-Codes:
http://localhost:8080/?text=Hello%20World
http://localhost:8080/?text=Test&size=512&errorCorrection=H
http://localhost:8080/?text=Colored&foreground=%23ff0000&background=%23ffff00
WiFi QR-Codes:
http://localhost:8080/?ssid=MeinWLAN&password=MeinPasswort123
http://localhost:8080/?ssid=OffenesWLAN
Termin (Kalender, iCal im QR):
http://localhost:8080/?mode=event&eventTitle=Team-Meeting&eventStart=2026-04-16T14:30&eventEnd=2026-04-16T15:30
Achtung: Das WLAN-Passwort ist im Link im Klartext sichtbar!
WiFi QR-Code Format
Die App generiert automatisch QR-Codes im Standard-WiFi-Format:
WPA/WPA2 Netzwerk:
WIFI:S:<SSID>;T:WPA;P:<Passwort>;;
Offenes Netzwerk (ohne Passwort):
WIFI:S:<SSID>;T:nopass;;
Verwendung:
- Füllen Sie die WiFi-Felder aus
- Der QR-Code wird automatisch generiert
- Das Textfeld zeigt den generierten Code an
- Scannen Sie ihn mit einem Smartphone
Das Smartphone erkennt automatisch, dass es sich um WiFi-Daten handelt und bietet an, sich mit dem Netzwerk zu verbinden!
Besondere Funktionen
Dynamische Klartext-Anzeige
- Das Textfeld zeigt immer den aktuellen Inhalt des QR-Codes an
- Bei WiFi-Eingaben wird automatisch das korrekte Format angezeigt
- Bei normaler Texteingabe bleibt der eingegebene Text sichtbar
Synchronisierte Felder
- Beim Leeren des Textfeldes werden auch die WiFi-Felder geleert
- Alle Felder werden synchron verwaltet
Intelligente Validierung
- WiFi-Passwort ohne SSID wird als Fehler angezeigt
- Leere Eingaben werden entsprechend behandelt
Teilen-Funktion
Mit dem Button "Teilen" kann ein Link mit allen aktuellen Einstellungen (inkl. WiFi- oder Termin-Daten) in die Zwischenablage kopiert werden. Dieser Link kann weitergegeben werden und öffnet die App direkt mit den gewählten Einstellungen.
Achtung: Wenn ein WLAN-Passwort eingegeben ist, wird dieses im Link im Klartext übertragen!
Sicherheit & Content Security Policy (CSP)
Die Anwendung ist gegen XSS-Angriffe abgesichert:
- Es wird eine strenge Content Security Policy (CSP) verwendet (
script-src 'self'), die Inline-Skripte blockiert. - Das gesamte JavaScript ist in die Datei
main.jsausgelagert und wird als externes Skript eingebunden. - Alle Benutzereingaben und URL-Parameter werden validiert und gefiltert.
- Es wird kein
innerHTMLverwendet, sondern nur sichere Methoden wie.textContentund.value.