2013-04-09 167 views
0

這是假設用戶輸入他們的名字(使用文本框),它將在刷新頁面後在屏幕上顯示他們的名字,但由於某種原因,它永遠不會進入getCookie中的if語句。 (它進入該功能幫助獲取Cookie雖然)。餅乾。我究竟做錯了什麼?


function setCookie() { 
    alert(fName.value); 
    var user = fName.value; 
    alert(user); 
    var expiry = new Date(); 
    expiry.setTime(expiry.getTime() + (1000 * 60 * 60)); 
    document.cookie = "mydata=" + user + ";" + "expires=" + expiry.toGMTString(); 
    alert(); 
} 

function getCookie() { 
alert(document.cookie.indexOf("mydata") >= 0); 
    if (document.cookie.indexOf("mydata") >= 0) { 
     alert(); 
     var cookieString = unescape(document.cookie); 
     var list = cookieString.split("="); 

     if(list[0] === "myData") { 
      var data = list[1].split(","); 
      var fname = list[0]; 
     } 

    divisionbar.innerHTML = "Welcome Back" + data; 
    } 
} 
+0

你如何調用這些函數?可能是你的問題。 – Alqin 2013-04-09 22:08:16

+0

對蝙蝠,什麼是fName,你是否將它傳遞給你的函數? – ntgCleaner 2013-04-09 22:11:25

+0

setCookie在您移開名字文本框()時被調用,然後每當網站被調用時調用getCookie加載。 (內部初始化:getCookie();) 編輯:另外是fname通過在init中使用getElementById傳遞(fName = document.getElementById(「fName」);) – Mettalknight 2013-04-09 22:11:56

回答

0

你是在本地測試這個代碼?如果是這樣,我相信你的問題是你的瀏覽器(很可能是Chrome)不允許創建本地cookie。請參閱:Javascript fails to create/recognize cookies on Chrome

我想你的代碼上的jsfiddle略加修改的方式和它的作品像預期一樣:http://jsfiddle.net/dKjas/

function setCookie(user) { 
    alert(user); 
    var expiry = new Date(); 
    expiry.setTime(expiry.getTime() + (1000 * 60 * 60)); 
    document.cookie = "mydata=" + user + ";" + "expires=" + expiry.toUTCString(); 
    alert(document.cookie); 
} 

function getCookie() { 

    if (document.cookie.indexOf("mydata") >= 0) { 
     var cookieString = unescape(document.cookie); 
     var cookies = cookieString.split(";"); 

     for (var i = 0, len = cookies.length; i < len; i++){ 
      var data = cookies[i].split('='); 
      if (data[0] === 'mydata') { 
       // Change divisionbar here. 
       alert('Name: ' + data[1]); 
      } 
     } 
    } 
} 

setCookie('foo'); 
getCookie(); 

我會真誠地建議您使用全局變量訪問的價值觀和位移開DOM,並給這些函數一些更具描述性的名字:-)