[FRAGE] Ausgewählte Cookies per JS löschen

69bruno

New member
Hallöle,

wir möchten gerne in einem Cookie-manager eine Funktion einbauen, die bei Abwahl eines speziellen Anbieters die damit verbundenen bereits gespeicherten Cookies löscht.
Also vom Prozess her, Benutzer akzeptiert z.B. analytics-cookies. Später entscheidet er sich, diese nicht mehr zu akzeptieren. Die gesetzten Cookies haben aber zum Teil eine Geltungsdauer von 2 Jahren. Nun möchte ich diese bei Abwahl durch ein Script löschen lassen.
Folgendes habe ich mir zusammengereimt:
Code:
var cookiedata[] = document.cookie.split(";");       /array aus den gespeicherten cookies bilden
var filtrat = cookiedata.filter(cookieName.match("_ga"|"_gid"));  /die analytics-cookies herausfiltern

/für jeden Filterwert MaxAge auf 0 setzen
for (let i=0; i<filtrat.length;i++){
     document.cookie = "cookieName=filtrat.cookieName ;path=/; MaxAge=0; Domain=. + window.location.hostname"
Bin ich damit auf einem richtigen Weg ?
 
So,

habe selbst das Ergebnis erarbeitet. Falls mal jemand Interesse daran haben sollte:

Bei uns läuft das Klaro-Script für die cookie-Verwaltung. In die Callback-Funktion des g*analytics-Schalters habe ich folgenden Schnipsel intergriert:
Code:
var cookieListAll = (document.cookie) ? document.cookie.split(';') : []; 	//Alle cookies auslesen
var cookieList =  cookieListAll.filter(function(praefix) {			//Cookies filtern
	return praefix.substring(0, f).match('_ga|_gid');			//Filterwert festlegen
	});
var cookieValues = {};					//Eigenschaftenvariable für cookie-Werte anlegen
for (var i = 0, n = cookieList.length; i != n; ++i) {				//Schleife über Anzahl der gefilterten cookies
var cookie = cookieList[i];							//cookie in Array schreiben
	var f = cookie.indexOf('=');						//Position =
	if (f >= 0) {								//Wenn Position = größer 0
		var cookieName = cookie.substring(0, f);	     //Wert vor dem = in cookieName schreiben
		var cookieValue = cookie.substring(f + 1);          //Wert hinter dem = in cookieValue schreiben
		if (!cookieValues.hasOwnProperty(cookieName)) {     //Wenn keine Eigenschaft für cookieName gespeichert
			cookieValues[cookieName] = cookieValue;	     //cookieValue als Eigenschaft speichern
		}													
	}
	document.cookie = cookieName + '=' + cookieValue +'; path=/; MaxAge=0; Domain=.' + window.location.hostname; //Max-Age der ermittelten cookies auf 0 setzen
}
 
Zurück
Oben