2013-05-30 35 views
12

Tôi đang cố gắng đặt nhiều cookie trong document.cookie, nhưng tiếc là chỉ có một cookie được thêm.Đặt nhiều cookie trong Javascript

Tôi biết có nhiều ví dụ hiển thị trên 'Net để thiết lập các loại cookie này và tôi đã theo dõi một trong số chúng. Nhưng tôi vẫn không thể đặt ra điều đó. Tôi đã theo dõi số link này để đặt cookie của tôi.

Mã của tôi:

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); 
} 

Các Output:

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

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

Trả lời

15

Cookies là các cặp giá trị quan trọng (với một số thông tin bổ sung tùy chọn thêm vào, như ngày hết hạn). Để đặt nhiều hơn một, bạn chỉ cần đặt document.cookie nhiều lần. Bộ phân cách ; được sử dụng để chỉ định thông tin bổ sung, chứ không phải để thêm các cookie khác.

+1

đó là một lời giải thích tuyệt vời. Cảm ơn :) –

+0

Fantastic - giải thích rõ ràng pha lê – SamJakob

17

Thêm một cookie được thực hiện thông qua document.cookie = "name=value" để thêm nhiều phím, bạn nên thực hiện nhiều 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

Tôi không nghĩ rằng điều này sẽ làm việc - bởi vì nó là phản trực giác - nhưng nó! : -O – Brad

+0

Có lý do nào cho 2 dấu chấm phẩy trên dòng 2 hoặc đó là do nhầm lẫn? – Jaketr00

+0

@ Jaketr00 Đó phải là một sai lầm. Tôi đã chỉnh sửa nó. –

2

Có bạn đi một ví dụ mẫu để thêm, danh sách và xóa nhiều tập tin cookie

<!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> 
Các vấn đề liên quan