2013-05-30 13 views
12

Sto tentando di impostare più cookie in document.cookie, ma sfortunatamente solo uno viene aggiunto.Impostazione di più cookie in Javascript

So che ci sono più esempi presenti sulla 'Rete per l'impostazione di questo tipo di cookie, e ho seguito uno di loro. Ma ancora non sono in grado di farlo. Ho seguito questo link per impostare il mio cookie.

My Code:

function setCookie(start_time,end_session_time,total_time,flag,count){ 
    var cookie_string = "start_time="+start_time;; 

    if(end_session_time) { 
     cookie_string +="; end_session_time="+end_session_time; 
    } 

    if(total_time){ 
     cookie_string +="; total_time="+total_time; 
    } 
    if(flag){ 
     cookie_string +="; flag="+flag; 
    } 
    if(count){ 
     cookie_string +="; count="+count; 
    } 

    document.cookie =cookie_string ; 
    console.log(cookie_string); 

    console.log("document.cookie ="+ document.cookie); 
} 

l'output:

cookie_string :: start_time=1369926508266; flag=1; count=1 
document.cookie =start_time=1369926508266; 
+0

See http://www.quirksmode.org/js/cookies.html – Barmar

risposta

15

cookie sono coppie di valori chiave (con un po 'di informazioni aggiuntive opzionali aggiunto, come la data di scadenza). Per impostare più di uno, è sufficiente impostare document.cookie più di una volta. Il separatore ; viene utilizzato per specificare le informazioni aggiuntive, non per aggiungere più cookie diversi.

+1

questa è stata una spiegazione meravigliosa. Grazie :) –

+0

Fantastico - spiegazione cristallina – SamJakob

17

Aggiunta di un cookie è realizzato tramite document.cookie = "name=value" aggiungere più chiavi, è necessario eseguire più assigments

function setCookie(start_time, end_session_time, total_time, flag, count) { 
    document.cookie = "start_time=" + start_time; 

    if (end_session_time) { 
     document.cookie = "end_session_time=" + end_session_time; 
    } 
    if (total_time) { 
     document.cookie = "total_time=" + total_time; 
    } 
    if (flag) { 
     document.cookie = "flag=" + flag; 
    } 
    if (count) { 
     document.cookie = "count=" + count; 
    } 

    console.log("document.cookie = " + document.cookie); 
} 
+6

Non pensavo che potesse funzionare - perché è controintuitivo - ma lo fa! : -O – Brad

+0

C'è un motivo per 2 punti e virgola sulla riga 2 o è stato un errore? – Jaketr00

+0

@ Jaketr00 Deve essere stato un errore. L'ho modificato –

2

Ci si va un esempio di esempio per aggiungere, la lista ed eliminare più biscotti

<!DOCTYPE html> 
<html> 
<head> 
<script> 
var n=1; 
function addCookie(){ 
document.cookie=n+"="+n;n++; 
} 

function ListCookies(){ 
var result = document.cookie; 
document.getElementById("p").innerHTML=result; 
} 

function removeCookies(){ 
//document.cookie=""; 
var result = document.cookie; 
var cookieArray = result.split(";"); 
for(var i=0;i<cookieArray.length;i++){ 
    var keyValArr = cookieArray[i].split("="); 
    document.cookie=keyValArr[0]+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"; 
} 
} 

</script> 

</head> 
<body> 
<button onclick='addCookie()'>ADD COOKIE</button><br> 
<button onclick='ListCookies()'>LIST COOKIES</button> 
<button onclick='removeCookies()'>REMOVE COOKIES</button> 
<h1>RESULT:</h1> 
<p id="p"></p> 
</body> 
</html> 
Problemi correlati