hadaka: Mehrere Cookies auslesen...

Hey Leute,
Ich stehe heute vor dem Problem, dass ich mit dem Auslesen mehrerer Cookies nicht so wirklich klarkomme. Ich habe als Beispiel 2 Cookies gespeichert auf folegende Art und Weise:

document.cookie = "x = "+document.getElementById('hallo').style.left+"";  
document.cookie = "y = "+document.getElementById('hallo').style.top+"";

Dazu zu sagen ist, dass ich an einer Drag and Drop Funktion arbeite, die die Position der verschobenen Div's speichert.
Im folgenden Schritt arbeite ich dann so :

if(document.cookie){  
x = document.cookie;  
document.write("<div onmousedown='dragstart(this)' id='hallo' style='position:absolute; left:"+x+"; width:200px; height:200px; background-color:#FF1100; top:30px;'>");  
}else{  
document.write("<div onmousedown='dragstart(this)' id='hallo' style='position:absolute; left:20px; width:200px; height:200px; background-color:#FF1100; top:30px;'>");  
}

Dieser sagt ja, dass wenn ein Cookie vorhanden ist, das Left Attribut den Wert des Cookies annehmen soll. Allerdings klappt das nicht wirklich... :(
Könnt ihr mir helfen?
Viele Grüße
Hadaka

  1. Hi,

    x = document.cookie;
    document.write("<div onmousedown='dragstart(this)' id='hallo' style='position:absolute; left:"+x+"; width:200px; height:200px; background-color:#FF1100; top:30px;'>");

    Dieser sagt ja, dass wenn ein Cookie vorhanden ist, das Left Attribut den Wert des Cookies annehmen soll. Allerdings klappt das nicht wirklich... :(

    Natürlich nicht, weil du höchstwahrscheinlich einen Wert zuweist, der für die Eigenschaft left ziemlich unsinnig sein dürfte.
    Mache bitte eine Kontrollausgabe des Wertes von x!

    (Und gewöhne dir an, das bei der Fehlersuche immer zu machen - nicht nur "annehmen", was in Variablen drin stehen "müsste", sondern *kontrollieren*.)

    Und nachdem du das gemacht hast, beschäftigst du dich damit, wie man in JavaScript mit Cookies umgeht. Was in document.cookie drinsteht, weisst du ja jetzt (bzw. informierst dich noch mal genauer, wie das Format aufgebaut ist) - und wie man es auseinandernimmt, dazu findest du bestimmt auch was.

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
  2. document.write("<div onmousedown='dragstart(this)' id='hallo' style='position:absolute; left:"+x+"; width:200px; height:200px; background-color:#FF1100; top:30px;'>");

    left hat eine Angabe wie "px" oder "em" oder "%" usw., richtig?

    Ich weiß nicht wo dein Problem beim auslesen mehrerer Cookies ist, aber du kannst dafür diese Funktion benutzen.

      
    function getCookieVal(offset) {  
     var endstr = document.cookie.indexOf (";", offset);  
     if(endstr == -1) { endstr = document.cookie.length; }  
     return unescape(document.cookie.substring(offset, endstr));  
    }  
      
    function GetCookie(name) {  
     var arg  = name +"=";  
     var alen  = arg.length;  
     var clen   = document.cookie.length;  
     var tCookie = document.cookie;  
      
     var i = 0;  
     while(i < clen) {  
      var j = i + alen;  
      if(tCookie.substring(i, j) == arg) { return getCookieVal(j); }  
      i = tCookie.indexOf(" ", i) + 1;  
      if(i == 0) { break;  }  
     }  
     return "";  
    }  
      
    // Aufruf: var cook = GetCookie("COOKIE_NAME");