2012-04-03 17 views
0

Ich bin auf der Suche nach einer Möglichkeit zum Erstellen/Erkennen eines Cookies auf einem lokalen Host in Javascript. Wenn ein Cookie mit dem angegebenen Namen "foo" für die Sitzung existiert, tun Sie nichts. Wenn kein Cookie vorhanden ist, erstellen Sie einen neuen Cookie namens foo und füllen Sie ihn mit einer GUID. Wie kann ich das in Javascript tun?Erstellen eines Cookies auf localhost

Dank

Antwort

0

Cookies von Javascript Lesen erfordert ein wenig String-Parsing. Es gibt eine Reihe von guten Bibliotheken, die diese Aufgabe zu erleichtern, aber Sie ähnlichen Code auf die folgenden erhalten und setzen Cookie-Werte

<script type="text/javascript"> 
    function GetCookieValue(key) { 
     var value = null; 
     var cookieArray = document.cookie.split(';'); 
     for (var i = 0; i < cookieArray.length; i++) { 
      var keyValuePair = cookieArray[i].split("="); 
      if (keyValuePair[0] == key) { 
       value = keyValuePair[1]; 
       break; 
      } 
     } 
     return value; 
    } 

    function SetCookieValue(key, value) { 
     document.cookie = key + "=" + value; 
    } 
</script> 

Generieren eines GUID in Javascript verwenden kann ein bisschen schwieriger wird. This guy hat eine nette Bibliothek, die Sie einschließen können, die gute GUIDs erzeugt. Ich weiß, dass es auch einige jQuery-Plugins gibt, die mit einem ähnlichen Zweck erstellt wurden, aber ich habe sie nicht verwendet.

Wenn Sie die folgenden Skripts zusammen mit den obigen Funktionen hinzufügen, sollte es tun, was Sie wollen.

<script type="text/javascript" src="http://www.broofa.com/Tools/Math.uuid.js"></script> 
<script type="text/javascript"> 
    var guid = GetCookieValue("myGuid"); 
    if (guid == null) 
     SetCookieValue("myGuid", Math.uuid()); 

    alert(GetCookieValue("myGuid")); 
</script> 
+0

Das Problem mit document.cookie ist, dass auf meiner localhost-Seite keine Cookies gesetzt sind. Stattdessen rufe ich eine externe Domäne an, die ihr Cookie festlegt, nach dem ich suchen möchte. Also rufe ich tatsächlich eine Domain wie google.com an, die ihren Cookie unter einer eigenen Domain setzt. Ich kann das sehen, wenn ich die Liste der Kekse in ff. Ansehe. Der Cookie wird unter google.com (für zB) gesetzt. Ich möchte überprüfen, ob das existiert oder nicht –

+1

Javascript ermöglicht es Ihnen nicht, auf Cookies von anderen Domänen zuzugreifen. Dies ist ein Sicherheitsrisiko. – dave