2014-05-13 94 views
0

所以我是Javascript新手,我試圖獲取cookie值以跟蹤測試。獲取cookie值(javascript)

我有六個問題,當一個問題完成時,我將「計數器」增加1個值,這樣如果用戶在問題四時丟失連接,則計數器將處於四個。然後,當他們重新連接時,我可以從cookie中獲取該計數器號碼並從問題四啓動,而不是在問題一重新啓動用戶。

這是我的cookie,計數器是存儲問題編號的編號。

document.cookie = "value1=" + one + ";value2" + two + ";value3=" + three + ";value4" + four + ";value5=" + five + ";value6=" + six + ";count=" + counter + ";expires=" + exp.toUTCString(); 

這是我在試圖找出如何的值存儲的嘗試,我試圖尋找櫃檯, 「計數」, 「數=」 和 「count = 6」

function getCookie(cookieName) { 
      var name = cookieName + "="; 
      var ca = document.cookie.split(';'); 
      for (var i = 0; i < ca.length; i++) { 
       var c = ca[i].trim(); 
       if ((c.indexOf(i)) == (all the options listed above)) { 
        alert("found"); 
       } 

      } 
      return "undefined"; 
     } 

我不知道什麼是存儲在哪裏。是的陣列應按「;」分解通過cookie中的split()。當我在循環中的每個變量「i」上調用一個警報時,我會得到諸如「counter = 6」的值。

我在實際指定某種「if」語句來捕獲JUST計數器變量時遇到了麻煩。

謝謝!

+0

有很多關於從JS訪問cookie的教程,我相信他們都展示瞭如何獲得你想要的cookie的價值。 – Barmar

+0

@Barmar我已經嘗試了很多,其中大部分都涉及分割cookie字符串,但是我從那裏不理解它。或者他們試圖獲得各種隨機值,因爲我只需要cookie中的一個值。 – Austin

+0

你期望這裏的答案能向你展示不同的東西嗎?你把它分開,然後循環遍歷數組尋找你想要的。如果你無法理解,也許你應該安裝一個可以爲你自動運行的插件。 – Barmar

回答

1

您沒有正確使用indexOf

function getCookie(cookieName) { 
    var name = cookieName + "="; 
    var ca = document.cookie.split(';'); 
    for (var i = 0; i < ca.length; i++) { 
     var c = ca[i].trim(); 
     if ((c.indexOf(name)) == 0) { 
      alert("found"); 
      return c.substr(name.length); 
     } 

    } 
    alert("not found"); 
    return null; 
} 
+0

啊,是的。我看到c = ca [i],但.indexOf(name)是我感到困惑的地方。每個數組的索引都持有像「count =」或「value1 =」或其他東西?我對indexOf(name)如何幫助感到困惑。對不起,我的學習很慢。 – Austin

+0

'split'創建一個數組,其中每個元素都是原始cookie字符串的子字符串。所以'ca [i]'將會像'count = 3'或'value1 = abc'一樣。 'c.indexOf(name)'在'c'中返回'name'的位置,所以如果'name'是'count =',如果'c'爲'count = 3',則返回'0' -1「,如果'c'是'value1 = abc'。 – Barmar