2011-06-13 111 views
0

我從Headfirst Javascript書中獲取了此代碼,用於cookie。但由於某種原因,它不適用於我的瀏覽器。我主要使用chrome和ff,並且我在Chrome中啓用了本地Cookie。幫幫我??Javascript Cookie代碼不存儲cookie /讀取空cookie值?

<script type="text/javascript"> 


function checkCookie(){ 
    var name = eatCookie("yahooEmail"); 
    if(name) 
     document.getElementById("emailVerf").style.visibility="hidden"; 
    else 
     document.getElementById("emailBody").style.visibility="hidden"; 
} 



function writeCookie(name, val, days){ 

    var expires = ""; 

    if(days){ 
     var date = new Date(); 
     date.setTime(date.getTime + (days * 24 * 60 * 60 * 1000)); 
     expires = "; expires=" + date.toGMTString(); 
    } 

    document.cookie = name + "=" + val + expires + "; path=/"; 

} 

function eatCookie(val){ 
    var search = val + "="; 
    var cookies = document.cookie.split(';'); 

    for(var i=0; i < cookies.length; i++){ 
     var c = cookies[i]; 
     while(c.charAt(0) == ' ') 
      c=c.substring(1, c.length); 
     if(c.indexOf(search) == 0) 
      return c.substring(search.length, c.length); 
    } 
    return null; 

} 

function verEmail(val){ 

    var regex = "[a-zA-Z0-9][@yahoo.com]"; 
    var exp = new RegExp(regex); 

    if(!exp.test(val)){ 
     document.getElementById("email").style.color="red"; 
     alert("Please enter a valid Yahoo email address."); 
     } 
    else{ 
     writeCookie("yahooEmail", val, 7); 
     document.getElementById("emailVerf").style.visibility="hidden"; 
     document.getElementById("emailBody").style.visibility="visible"; 
     } 
} 

</script> 
+0

以何種方式是不工作?讀曲奇?寫曲奇?別處?你有什麼錯誤嗎? – mkilmanas 2011-06-13 13:38:10

+0

@mkilmanas它不能讀取或寫入cookie。當我讀取cookie時,它返回null,所以每次我加載頁面時,它都像沒有cookie一樣。而雅虎是一個錯字,但我改變了它以前的狀況。即使拼寫正確,它也不起作用。 – banjokaboom 2011-06-15 14:26:52

回答

2

你正在編寫一個名爲「ayahooEmail」 Cookie,但在閱讀一個叫「yahooEmail」

+0

嗯,我不知道該怎麼告訴你:我可以寫一個名爲「yahooEmail」的cookie,並使用'writeCookie'和'eatCookie'來讀取它。想到的唯一的事情就是在編寫之前不使用encodeURIComponent()來編碼cookie值,而在讀取它時使用decodeURIComponent。 (請記住,cookie值不能包含等號,空格,分號和其他幾個字符。) – jmbucknall 2011-06-15 17:58:34

+0

@portugusto_programmer:實際上,我對[使用cookie的Headfirst JavaScript代碼]感到震驚(http://headfirstlabs.com/books/ hfjs/ch03/irock/cookie.js),因爲它不編碼/解碼值。來吧! – jmbucknall 2011-06-15 18:05:05

+0

我一定會嘗試一下。這可能是問題所在。謝謝。 – banjokaboom 2011-06-16 18:52:56