Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hide und Internet Explorer #1

Open
schenja2000 opened this issue Oct 26, 2020 · 9 comments
Open

Hide und Internet Explorer #1

schenja2000 opened this issue Oct 26, 2020 · 9 comments

Comments

@schenja2000
Copy link

Hallo Philipp,

die Anwendung ist klasse geworden.

Ich habe die Datei cookieyesno.min.js im Header eingebunden und die Anwendung mit Google Analytics in verschiedenen Browsern getestet.

Bis auf folgende Punkte habe ich keine Probleme festgestellt:

1. Beim Reload der Webseite wird nicht erkannt, dass das Cookie gesetzt wurde
1.1 Cookie ist gesetzt:
grafik

1.2 Cookie-Banner bleibt auf display:block;
grafik

2. Fehler in allen Versionen vom Internet Explorer
2.1 Wenn das Script cookieyesno.min.js ohne die Befehle unter "Usage" geladen werden, wird der Cookie-Banner angezeigt.

2.2 Sobald die Befehle unter "Usage" eingebunden sind, wird das Cookie-Banner nicht mehr geladen und folgender Fehler angezeigt:
grafik
grafik

@philippG777
Copy link
Owner

Hallo,

versuche einmal

cyn.onChange(function(settings) {
    // cookie settings have changes
});

statt der Pfeil Syntax, denn diese wird von älteren Browsern nicht unterstützt.


In welchem Browser ist der Fehler mit dem Banner, der sichtbar geblieben ist, aufgetreten?

@schenja2000
Copy link
Author

Habe den (Leichtsinns)-Fehler gefunden. Habe die Current-Settings mitaufgerufen.

Vielen Dank für Deine Hilfe!

@philippG777
Copy link
Owner

Kein Problem.

Wünscht Du dir noch andere Features bzw. hast Du irgendwelche Verbesserungsvorschläge?

Ich würde gerne eine Liste mit Webseiten, die diesen Banner verwenden ins README stellen. Wenn es Dir nichts ausmacht würde ich auch gerne deine dazugeben.

@schenja2000
Copy link
Author

Ich werde die Anwendung in den nächsten Wochen auf einigen Webseiten implementieren. Ich sende Dir dann die Links zu.

Ich suche seit langem nach einem Tool mit genau dem von Dir gebotenen Funktionsumfang. Es ist für DSGVO-Anforderungen perfekt geeignet, verständlich geschrieben und flexibel anpassbar. Folgende Vorteile sehe ich an der Software:

  1. Keine monatlichen Zahlung für Basis-Funktionalitäten (im Vergleich zu den kostenpflichtigen Tools)
  2. Code extrem sauber mit Liebe zum Detail (z.B. die Möglichkeit der Versions-Änderung)
  3. Sehr performant (z.B. usercentrics ist 50x größer)
  4. Einfache Möglichkeit das Tool an die eigenen Anforderungen anzupassen und zu erweitern
  5. Kein Reload notwendig, um Tracking-Code nachzuladen
  6. Läuft auf allen getesteten Browsern (IE, Safari, Firefox, Chrome, ...)

Großer Respekt!

@philippG777
Copy link
Owner

Danke!

Ich lass das Issue noch ein paar Wochen für die Links offen.

@schenja2000
Copy link
Author

Hallo Philipp, tut mir leid ... jetzt sind aus einigen Wochen Monate geworden und ich habe die Anwendung immer noch nicht im Live-Betrieb. Ich habe irgendwann aufgegeben, weil ich es nicht geschafft habe, JavaScript aus dem HTML-Code ausgeführt zu bekommen:

Habe versucht nachfolgend das Tag type beim Befehl accepted umzuwandeln von text zu javascript:

<script type="text/plain" data-name="analytics"> //... </script>

Aber es ist mir nicht gelungen. Hast Du eine Idee?

@philippG777
Copy link
Owner

Hallo,

wenn ich Dich recht verstehe, hast Du ein Script-Element das so irgendwie ausschaut:

<script>
    // irgendein code - zum Beispiel Google Analytics
</script>

Und Du möchtest dieses Script nur ausführen, wenn die analytics Kategorie akzeptiert wird. Nun gibt es drei Möglichkeiten:

Blockiertes Inline Script (Unsicher)

Verändere einfach den script Tag, damit er folgendermaßen aussieht:

<script type="text/plain" data-cyn-require="analytics">
    // irgendein code - zum Beispiel Google Analytics
</script>

Es kann sein, dass dieses Script in älteren Firefox Versionen nicht blockiert wird. Verwende besser eine der anderen beiden Möglichkeiten.

Externes JavaScript

Kopiere den Inhalt des Script-Elements in ein neues JS-File, in diesem Beispiel nenne ich es myotherscript.js.
Ersetze nun Dein Script Element durch folgendes:

<script type="text/plain" data-cyn-src="myotherscript.js" data-cyn-require="analytics"></script>

Die eleganteste Möglichkeit: Events

Erweitere Deinen Code wie folgt:

// Die folgende Zeile solltest Du in irgendeiner Form schon haben:
var cyn = new CookieYesNo(DEINE_CONFIG);

// Erstelle eine Funktion, die den Code aus dem Script Tag enthält, der ausgeführt werden soll wenn analytics akzeptiert werden
function analyticsAccepted()
{
    // irgendein code - zum Beispiel Google Analytics
}

// Nun füge ein Event dazu, dass analyticsAccepted aufruft, wenn analytics akzeptiert werden.
cyn.onAccept("analytics", analyticsAccepted);

Ich hoffe das hat geholfen. Aber Achtung, damit die obigen Beispiele funktionieren muss die neue Version (1.1.0) verwendet werden, die kann viel mehr als die alte.
Wenn Du noch etwas brauchst, dann melde Dich einfach wieder.

LG Philipp

@philippG777 philippG777 reopened this Jan 25, 2021
@schenja2000
Copy link
Author

Hallo Philipp,

ich habe einen Test mit Version 1.1.0 aufgesetzt und vom Layout etwas angepasst: https://www.uflow.de/

  • Position der einzelnen Elemente (Titel, Beschreibung, Recht-URLs, Cookie-Tabelle, Buttons)
  • Ein Teil des CSS habe ich in die CSS-Datei verschoben (für meine Übersicht)
  • "Details" Button bei den einzelnen Kategorien

Habe alle aktuellen Browser getestet (Firefox, Google/Edge, Safari) - läuft überall super, nur der Internet Explorer macht Probleme:
grafik
grafik

@philippG777
Copy link
Owner

Hallo,

es sollte jetzt mit der neuen Version (https://github.com/philippG777/cookieyesno/releases/tag/v1.1.1) funktionieren und es gibt laut meinen Tests zufolge nun auch keine Bugs in IE11mehr.

Der Banner auf https://www.uflow.de/ sieht ziemlich gut aus. Besonders gut gefällt mir, dass man die Details aufklappen kann. Darf ich den Link ins README-File stellen?

Mir ist folgendes aufgefallen:

1. Konsens im nachhinein bearbeiten

An und für sich sollte der Benutzer die Möglichkeit haben, den Konsens zu widerufen oder zu bearbeiten, dies kann man zum Beispiel mit folgendem Link im Footer realisieren:

<a href="#" onclick="cyn.reviewSettings()">Cookie-Einstellungen widerufen oder bearbeiten</a>

(Mehr Info dazu: https://datenschutz-generator.de/bgh-cookies-opt-in-faq-checkliste/#Wo_muessen_die_Moeglichkeiten_zu_nachtraeglichen_Aenderungen_der_Einwilligung_platziert_werden)


2. Verwendung von cookieyesno.min.js

Für eine möglichst effiziente Verwendung ist es ratsam, dass man das cookieyesno.min.js einbindet, und die Veränderungen des Banners über die übergebene Config bzw. CSS vornimmt. Der Text kann beispielsweise auf folgende Weise verändert werden:

var cyn = new CookieYesNo({
   ...
    text: {
        above: "Text über der Auswahl der Kategorien",
        below: "Text unter der Auswahl der Kategorien"
    },
   ...
});

Das Aussehen kann durch die Verwendung von CSS rules beeinflusst werden, manchmal muss man !important verwenden, um das existierende Styling sicher zu überschreiben. Mehr Info zu !important: https://www.elegantthemes.com/blog/design/css-important

Der Vorteil von cookieyesno.min.js ist, dass es schon verkleinert ist (ungefähr um den Faktor 2 kleiner als das normale nicht minifizierte File) und dadurch schneller übertragen werden kann.

Bei Fragen einfach wieder melden.
LG Philipp

P.S.: Ich bin sehr erfreut darüber, dass der Banner auch aktiv verwendet wird.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants