Ergebnis 1 bis 6 von 6

Thema: Java Skript - Cookie wird nicht neu gesetzt

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #2
    Code (JavaScript):
     
    function addCookieAttr(name,value,expires){
    	var cook = name + '=' + value;
    	cook += (expires) ? "expires=" + expires + attributDelimiter : "";
     	document.cookie = cook;
    }
     


    (expires) ? "expires=" + expires + attributDelimiter : "";

    sollte

    (expires) ? "expires=" + expires + attributDelimiter : attributDelimiter;

    heißen, denn ansonsten kann es zu fehlenden Semikola und damit Parsing-Problemen führen.

    Außerdem überschreibt document.cookie = cook; jedes mal den Cookie und fügt nicht neue Attribute hinzu. Damit enthält der Cookie immer nur das letzte Attribut, das du "hinzugefügt" hast.

    Code (JavaScript):
     
    function replaceCookieAttrValue(name,searchedAttr,replaceAttr){
    	var retVal = -1;
     
    	if(name){	
    		var cookieContent = getCookieAttrValue(name);
     
    		if(cookieContent != null){
    			var replaceString = cookieContent.replace(searchedAttr,replaceAttr);
     
    			if(cookieContent.search(replaceString) == -1){
    				retVal = 1;
    				alert("Replacestring: "+replaceString);
    				alert("Replace: "+document.cookie.replace(cookieContent , replaceString));
    				document.cookie =  document.cookie.replace(cookieContent , replaceString);
    			}		
    		}
    	}
     
    	return retVal;	
    }
     


    if(cookieContent.search(replaceString) == -1){

    macht keinen Sinn.

    cookieContent.search(replaceString)

    sollte

    replaceString.search(replaceAttr)

    heißen, denn replace() verändert nicht den String, auf dem es angewendet wird, sondern gibt einen neuen String zurück, der aus dem alten inklusive den Veränderungen (falls etwas verändert wurde) besteht. Weiter gibt search() nur in dem Fall -1 zurück, wenn die Suche nicht erfolgreich war, du musst also nicht auf Gleichheit, sondern auf Ungleichheit prüfen. Damit sollte die Zeile, soweit ich das sehe

    if(replaceString.search(replaceAttr) != -1){

    heißen.


    Edit: Mit JSON könntest du dir übrigens das Leben auch einfacher machen.

    Geändert von Kyuu (29.11.2009 um 16:58 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •