ich habe nach dieser Anleitung das aufgeführte Beispiel in meiner Website implementiert, funktioniert soweit gut. ABER: eine Frage dazu: Es wird je nach Auswahl ein Cookie von Matomo gesetzt “matomo_ignore”. Ich gehe davon aus, dass das Cookie - wenn gesetzt - bedeutet, dass der Nutzer nicht getrackt werden möchte. Allerdings wird das Cookie gesetzt, wenn die Checkbox ausgewählt ist und der Text “You are currently opted out. Click here to opt in.” angezeigt wird. Sollte es nicht andersrum sein?
ich möchte gerne beim Verändern des Textes für die Nutzer gleichzeitig eine weitere Klasse an das Formular hängen. Leider ist mein JS Wissen sehr begrenzt und ich komme hier nicht weiter. Könntet Ihr mir helfen?
So habe ich die Funktion erweitert:
function setOptOutText(element) {
_paq.push([function() {
element.checked = !this.isUserOptedOut();
document.querySelector('label[for=optout] span.pxstff-checkmark-text').innerText = this.isUserOptedOut()
? ('Du bist aktuell von der Erfassung unserer Statisiken abgemeldet. Bitte klicke hier, um dich anzumelden.', document.querySelector('div#optout-form').classList.add('neueklasse'))
: ('Vielen Dank, wir erfassen anonymisierte Statistiken über deinen Besuch bei uns. Bitte klicke hier, um dich abzumelden.');
}]);
}
Ohne den kompletten Code zu sehen, ist es schwer tipps zu geben.
Aber ich verstehe, dass ternary operators nicht ganz so Anfängerfreundlich sind und würde daher empfehlen das ganze als ein einfaches if-else zu schreiben:
const selector = document.querySelector('label[for=optout] span.pxstff-checkmark-text')
if (this.isUserOptedOut()) {
selector.innerText = 'Du bist aktuell von der Erfassung unserer Statisiken abgemeldet. Bitte klicke hier, um dich anzumelden.'
document.querySelector('div#optout-form').classList.add('neueklasse');
} else {
selector.innerText = 'Vielen Dank, wir erfassen anonymisierte Statistiken über deinen Besuch bei uns. Bitte klicke hier, um dich abzumelden.';
}
Hey @Lukas, super, vielen Dank! Jo, die Operatoren sind wirklich schwer zu verstehen für mich. Hatte auch probiert, das in eine normale if then else Anweisung umzuschreiben - hat aber nicht geklappt. Also vielen Dank!!